Token导航 LogoToken导航TokenDH.com
one MCP logo
搜索检索stdio官方级别未说明来源级核验

one MCP

MCP Server

one-mcp是一个轻量级的MCP服务器,支持API工具的智能管理和语义搜索,适用于开发者和API管理场景。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
搜索工具管理PythonClaudeAPI集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

freakynit

提供方

freakynit

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

🧠 一个mcp

🚀 概述

一个mcp 是一种轻量级 MCP(模型上下文协议) 使用构建的服务器 快速API 它支持智能工具管理和API的语义搜索。 它允许您使用自然语言上传、管理和查询API工具,由现代嵌入模型通过 sentence-transformers.

服务器支持多种传输模式(stdio、HTTP或同时支持这两种传输模式),并提供REST API和MCP工具接口,以实现最大的灵活性。

______________________________________________________________________

✨ 特性

  • 🔍 语义搜索: 使用语句转换器嵌入,基于描述性查询查找相关的API工具。
  • 📤 上传工具: 通过JSON主体或文件上传添加新的API工具。
  • 🗑️ 删除工具: 按名称删除特定工具(支持批量删除)。
  • 🧾 工具统计: 深入了解存储的工具,包括计数、模型和存储路径。
  • 🧹 工具管理: 轻松清理、检查或修改您的工具库。
  • FastAPI后端: 高性能、异步就绪的后端服务器。
  • 🤝 MCP兼容性: 双接口-用于无缝集成的REST API和MCP工具。
  • 🔄 双重运输: 同时支持stdio和HTTP传输。
  • 💾 永久存储: 工具和嵌入保存到磁盘,并自动加载。
  • 📊 结构化日志记录: 使用旋转文件处理程序进行全面的日志记录。

______________________________________________________________________

🧩 项目结构

one-mcp/
├── server.py           # Main application entry point with server orchestration
├── mcp_server.py       # MCP server class with multi-transport support
├── api.py              # FastAPI routes and REST endpoints
├── mcp_tools.py        # MCP tool definitions and handlers
├── models.py           # Pydantic models for request/response validation
├── tools_store.py      # Persistent tool storage with embeddings
├── config.py           # Server configuration and argument parsing
├── logging_setup.py    # Centralized logging configuration
├── test_specs.json     # Sample tool dataset for testing
├── CURLS.md            # Example cURL commands for testing API endpoints
├── MCP_TOOLS.md        # MCP tools documentation
├── requirements.txt    # Project dependencies
├── Dockerfile          # Docker containerization (CPU-based dependencies)
└── README.md           # Project documentation (this file)

______________________________________________________________________

⚙️ 安装

1.克隆存储库

git clone https://github.com/freakynit/one-mcp.git
cd one-mcp

2.设置虚拟环境

python -m venv venv
source venv/bin/activate  # macOS/Linux
venv\Scripts\activate     # Windows

3.安装依赖项

pip install -r requirements.txt

依赖关系包括:

fastapi>=0.104.0
uvicorn>=0.24.0
fastmcp>=0.2.0
python-multipart>=0.0.6
torch==2.4.1
torchvision==0.19.1
torchaudio==2.4.1
sentence-transformers>=2.2.0
scikit-learn>=1.3.0
numpy>=1.24.0

______________________________________________________________________

🧠 运行服务器

备注:第一次运行服务器时,它将下载 all-MiniLM-L6-v2 句子转换模型。这可能需要几秒钟,具体取决于您的互联网连接。

从双传输(stdio+HTTP)开始

python server.py --transport stdio,http --port 8003

这同时启用MCP stdio通信和HTTP REST API访问。

仅HTTP模式

python server.py --transport http --port 8003

仅标准模式(适用于MCP客户端)

python server.py --transport stdio

直接使用Uvicorn

uvicorn server:app --host 0.0.0.0 --port 8003

配置选项

  • --transport:传输模式(stdio、http或stdio、http-默认值:stdio
  • --port:HTTP端口号-默认值:8000
  • --host:要绑定的主机-默认值:0.0.0.0
  • --storage_path:存储工具嵌入的路径-默认:tool_embeddings.json

默认情况下,服务器从以下位置启动: 👉 http://localhost:8003 (启用HTTP传输时)

服务器自动执行以下操作:

  • 创建一个 logs/ 应用程序日志目录
  • 从加载现有工具 tool_embeddings.json 启动时
  • 修改后将工具保存到磁盘

______________________________________________________________________

🧪 测试API

服务器提供两个接口:

  1. REST API:可在 /api/* 端点(请参见 CURLS.md 例如)
  2. MCP工具:可通过MCP协议获得(参见 MCP_TOOLS.md 文件)

REST API端点

所有端点都返回带有适当状态代码的结构化JSON响应。

检查服务器状态

curl http://localhost:8003/api/status

通过JSON上传工具

curl -X POST http://localhost:8003/api/tools/upload-json \
  -H "Content-Type: application/json" \
  -d '{"tools": [{"type": "function", "name": "get_weather", "description": "Get the current weather for a specific city.", "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "The name of the city to get weather for."}}}}]}'

通过文件上传工具

curl -X POST http://localhost:8003/api/tools/upload-file \
  -F "file=@test_tools.json;type=application/json"

搜索类似工具

curl -X POST http://localhost:8003/api/tools/search \
  -H "Content-Type: application/json" \
  -d '{"query": "weather forecast for a city", "k": 3}'

获取统计信息

curl http://localhost:8003/api/tools/stats

删除特定工具

curl -X DELETE http://localhost:8003/api/tools/delete \
  -H "Content-Type: application/json" \
  -d '{"tool_names": ["get_weather", "get_news_headlines"]}'

清除所有工具

curl -X DELETE http://localhost:8003/api/tools/clear

MCP访问

MCP端点安装在 /mcp 对于HTTP流模式:

curl http://localhost:8003/mcp

有关完整的MCP工具文档,请参阅 MCP_TOOLS.md.

有关更全面的测试示例,请参阅 CURLS.md.

______________________________________________________________________

🧰 MCP配置示例

要与MCP客户端(如Claude Desktop)集成:

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

对于双传输模式(用于MCP+用于REST API的HTTP的stdio):

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

______________________________________________________________________

🏗️ 建筑

组件

  • 服务器.py:初始化应用程序并启动MCP服务器的入口点
  • mcp_server.py:处理多传输服务器编排(stdio/HTTP/dual)
  • api.py:FastAPI应用程序工厂和REST端点定义
  • mcp_tools.py:MCP工具装饰器和函数实现
  • tools_store.py:具有搜索功能的工具嵌入单例存储
  • models.py:用于类型安全和验证的Pydantic模型
  • config.py:配置管理和CLI参数解析
  • 日志设置:使用旋转文件处理程序进行集中日志记录

运作原理

  1. 工具存储:工具与嵌入一起存储,使用 sentence-transformers
  2. 语义搜索:使用余弦相似度比较查询嵌入
  3. 持久性:工具自动保存到 tool_embeddings.json
  4. 双接口:通过REST API和MCP工具提供相同的功能
  5. 多运输:服务器可以同时运行stdio(用于MCP客户端)和HTTP

______________________________________________________________________

开发

  1. 创建zip: zip -r one-mcp.zip . -x "*.git/*" -x ".env" -x ".DS_Store" -x ".dockerignore" -x ".gitignore"

______________________________________________________________________

🧑‍💻 贡献

欢迎投稿! 贡献:

  1. 分叉 存储库
  2. 创建 一个新的功能分支(git checkout -b feature/my-feature)
  3. 提交 您的更改(git commit -m "Add my feature")
  4. 到你的叉子(git push origin feature/my-feature)
  5. 提交拉取请求

提交前,请确保:

  • 代码通过了linting和基本测试。
  • 如果需要,您已经更新了文档。

______________________________________________________________________

📜 许可证

该项目根据 MIT许可证 --看看 许可证 文件以获取详细信息。

______________________________________________________________________

💬 支持

如果您遇到任何问题或有功能请求:

  • 打开一个问题
  • 或联系 @怪胎 直接。

目录标签

目录标签

搜索工具管理PythonClaudeAPI集成语义搜索本地部署API管理FastAPIMCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP