A composable, ready-to-use MCP toolkit for agents and rapid integration.
Project description
MCPStore
项目背景与价值
在当前的智能体开发生态中,工具管理和集成往往是一个复杂而繁琐的问题。每开发一个新的智能体或 LangChain,都需要重新配置和维护 MCP(Model Control Protocol)相关的设置,这不仅增加了开发成本,还容易导致配置不一致和维护困难的问题。
MCPStore 正是为解决这个痛点而生。它提供了一个中心化的工具管理解决方案,使得智能体开发者可以:
- 🎯 专注于业务逻辑,而不是工具集成
- 🛒 像"购物"一样轻松地订阅和管理所需的工具
- 🔄 统一管理和复用工具配置
- 📦 一次配置,多处使用
通过 MCPStore,我们将 MCP 的复杂性封装在一个易用的接口之后,让智能体的工具调用变得如同在"商店"中选购一样简单。
特性
- 🚀 简单易用的 API 接口
- 🛠 灵活的服务注册机制
- 🔌 插件化的工具管理
- 🌐 支持 Web API 和实例化对象两种使用方式
- 💡 智能的工具订阅和管理
- 🔄 内置健康检查机制
- 🔗 计划支持与 LangChain 无缝集成
安装
pip install mcpstore
快速开始
1. 通过实例化对象使用
from mcpstore.core.store import McpStore
from mcpstore.core.orchestrator import MCPOrchestrator
from mcpstore.core.registry import ServiceRegistry
from mcpstore.plugins.json_mcp import MCPConfig
# 初始化核心组件
registry = ServiceRegistry()
orchestrator = MCPOrchestrator({
"timing": {
"heartbeat_interval_seconds": 60,
"heartbeat_timeout_seconds": 180,
"http_timeout_seconds": 10,
"command_timeout_seconds": 10
}
}, registry)
mcp_config = MCPConfig()
store = McpStore(orchestrator, mcp_config)
# 注册服务
store_response = await store.register_json_service()
# 获取工具列表
tools = store.list_tools()
2. 通过 Web API 使用
启动 Web 服务:
python -m mcpstore.cli.web
API 端点示例:
- POST /register_service - 注册服务
- GET /list_tools - 获取工具列表
- POST /execute_tool - 调用工具
- GET /list_services - 获取服务列表
- GET /health - 健康检查
核心概念
Store(商店)
- Store 是整个系统的核心,负责管理所有服务和工具
- 提供服务注册、工具调用等核心功能
- 支持健康检查和状态监控
Service(服务)
- 可以通过 JSON 配置注册的功能单元
- 每个服务可以提供多个工具
- 支持服务状态监控和健康检查
Agent(智能体)
- 使用 Store 服务的客户端
- 可以选择性订阅所需的服务和工具
- 通过 client_id 进行身份识别和权限管理
Tool(工具)
- 具体的功能实现单元
- 支持参数配置和结果返回
- 可以被多个 Agent 复用
项目结构
mcpstore/
├── core/ # 核心功能模块
├── data/ # 数据存储相关
├── scripts/ # 实用脚本工具
├── cli/ # 命令行工具
├── plugins/ # 插件扩展模块
├── config/ # 配置管理
└── __init__.py # 包初始化文件
配置说明
MCPStore 使用 JSON 格式的配置文件来管理服务和工具。配置文件示例:
{
"services": {
"weather_service": {
"tools": ["get_weather", "get_air_quality"],
"config": {
"api_key": "your_api_key"
}
}
}
}
使用场景
-
智能体工具管理
- 为智能体提供工具订阅和管理
- 简化工具调用流程
- 统一管理工具权限
-
服务集成平台
- 统一管理多个服务
- 提供服务健康监控
- 支持服务动态注册
-
API 网关
- 提供统一的 API 接口
- 管理服务调用
- 监控服务状态
开发计划
- 支持与 LangChain 的无缝集成
- 增强服务监控和告警功能
- 添加更多预置工具和服务
- 优化性能和可扩展性
- 完善文档和示例
贡献指南
欢迎提交 Issue 和 Pull Request 来帮助改进项目。
许可证
[许可证类型]
联系方式
[联系方式信息]
为什么选择 MCPStore?
开发痛点
- 🔧 传统方式下,每个智能体都需要独立维护 MCP 配置
- 📝 重复的工具集成工作占用大量开发时间
- 🔍 工具版本和配置的不一致性难以管理
- 🔀 多个智能体使用相同工具时配置冗余
MCPStore 的解决方案
- 🏪 提供"商店"式的工具管理体验
- 🎯 一次配置,多处复用
- 🔄 统一的版本控制和配置管理
- 🛡️ 集中化的权限和访问控制
- 📊 统一的监控和管理界面
使用效果
- ⚡ 显著减少工具集成时间
- 🎯 降低维护成本
- 💡 提高开发效率
- 🔐 更好的安全性和可控性
典型应用场景
1. 智能体快速开发
当你需要开发一个新的智能体时,不再需要从零开始配置工具链:
from mcpstore.core.store import McpStore
# 初始化 store
store = McpStore()
# 注册所需服务
agent_id = await store.register_json_service(service_names=['weather', 'maps', 'search'])
# 直接开始使用工具
tools = store.list_tools(agent_id)
2. LangChain 集成
计划中的 LangChain 集成将使工具管理更加简单:
from mcpstore.integrations.langchain import MCPStoreLangChainTools
# 将 store 转换为 LangChain 工具
tools = MCPStoreLangChainTools.from_store(store, agent_id)
# 在 LangChain 中使用
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcpstore-0.1.7.tar.gz.
File metadata
- Download URL: mcpstore-0.1.7.tar.gz
- Upload date:
- Size: 182.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34e0603d234c00349ef019c48c49d82ba11e2960d6d4618feb3dc07952f1e608
|
|
| MD5 |
c09cb5bf98d0cbe31ef3536d19810022
|
|
| BLAKE2b-256 |
85221e31a890882e1442774656d27cbfedfb3a70161ed378b04504a96b7f5add
|
File details
Details for the file mcpstore-0.1.7-py3-none-any.whl.
File metadata
- Download URL: mcpstore-0.1.7-py3-none-any.whl
- Upload date:
- Size: 236.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28199c338e5e8bd114614dcc2a9b6cfd8767e08951eca2ae4648858c2fbc87d6
|
|
| MD5 |
f7ace0df0289da62ff06dd79d0cd1834
|
|
| BLAKE2b-256 |
76bab60141f02d09c32782303e1a2f2f38963ac1e3096f501fb0ac12cd191c2b
|