One

Provides a lightweight MCP server for semantic tool management, embedding-based search, and dual REST/MCP interfaces.
  • python

0

GitHub Stars

python

Language

5 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

one-mcp is a lightweight MCP server that lets you manage API tools with semantic search and query them using natural language. It supports multiple transports and provides both a REST API and an MCP interface, making it easy to integrate with clients and tooling while keeping tool embeddings stored locally for fast, offline-ready access.

How to use

You run the MCP server locally and connect through an MCP client that communicates over stdio. The server exposes a set of capabilities you can use from your client, including uploading tools, searching for relevant tools by natural language, inspecting stored tools, and deleting tools. You can also access a REST API for broader integration if you prefer HTTP.

Key workflows you can perform include uploading new API tools, performing semantic searches to find tools that match a description, retrieving statistics about your tool store, and cleaning up stored tools when needed. Tools and their embeddings are saved to disk so you can reload your state on startup.

How to install

Prerequisites: you need Python installed on your system. A virtual environment is recommended to keep dependencies isolated.

# 1) Create and activate a virtual environment
python -m venv venv
source venv/bin/activate  # macOS/Linux
venv\Scripts\activate     # Windows

# 2) Install dependencies
pip install -r requirements.txt
  1. Run the server with your preferred transport. The server will download the embedding model on first start.
# Dual transport (stdio + HTTP) on port 8003
python server.py --transport stdio,http --port 8003

# HTTP-only mode on port 8003
python server.py --transport http --port 8003

# Stdio-only mode (for MCP clients)
python server.py --transport stdio

If you prefer to run the server directly via a launcher, you can also start it with a standard web server command if you use a frontend like Uvicorn.

Configuration and notes

The server offers these core options and defaults. You can adjust them to fit your environment.

--transport  : stdio, http, or stdio,http  (default: stdio)
--port       : HTTP port number (default: 8000)
--host       : Host to bind (default: 0.0.0.0)
--storage_path: Path to store tool embeddings (default: tool_embeddings.json)

Logs are written to a logs/ directory with rotating file handlers. Tools and embeddings are loaded on startup and saved after any modification, so your state persists across restarts.

MCP configuration example

If you want to integrate with an MCP client, you can declare a local stdio MCP server that runs your python entry point. The following config demonstrates a stdio MCP server using a direct path to the server script.

{
  "mcpServers": {
    "one_mcp": {
      "command": "python",
      "args": [
        "/absolute/path/to/server.py",
        "--transport", "stdio",
        "--storage_path", "tool_embeddings.json"
      ]
    }
  }
}

If you want dual transport (stdio for MCP and HTTP for REST), use the extended config shown here. This enables both MCP and REST API access in a single server instance.

{
  "mcpServers": {
    "one_mcp": {
      "command": "python",
      "args": [
        "/absolute/path/to/server.py",
        "--transport", "stdio,http",
        "--port", "8004",
        "--storage_path", "tool_embeddings.json"
      ]
    }
  }
}

Troubleshooting and tips

If you encounter slow startup or heavy downloads on first run, ensure you have a reliable internet connection for the initial model download. You can monitor logs under the logs/ directory to understand loading progress and any errors that arise.

For troubleshooting connectivity, verify that the host and port you are using match the transport configuration, and confirm the storage_path points to a writable location with sufficient disk space.

Available tools

semantic_search

Find relevant API tools based on descriptive queries using sentence-transformers embeddings.

upload_tools

Add new API tools via JSON payload or file upload to expand the tool store.

delete_tools

Remove specific tools by name, with support for batch deletion.

tool_statistics

Get insights on stored tools including count, model, and storage path.

tool_management

Clear, inspect, or modify the tool store.

multiplex_transport

Support for both MCP stdio and HTTP transports in a single server instance.

persistent_storage

Embeddings and tools are saved to disk and loaded on startup.

structured_logging

Comprehensive logging with rotating file handlers to aid troubleshooting.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational