Skip to main content

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"
            }
        }
    }
}

使用场景

  1. 智能体工具管理

    • 为智能体提供工具订阅和管理
    • 简化工具调用流程
    • 统一管理工具权限
  2. 服务集成平台

    • 统一管理多个服务
    • 提供服务健康监控
    • 支持服务动态注册
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcpstore-0.1.8.tar.gz (182.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcpstore-0.1.8-py3-none-any.whl (236.5 kB view details)

Uploaded Python 3

File details

Details for the file mcpstore-0.1.8.tar.gz.

File metadata

  • Download URL: mcpstore-0.1.8.tar.gz
  • Upload date:
  • Size: 182.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for mcpstore-0.1.8.tar.gz
Algorithm Hash digest
SHA256 b5f698cc0757b8c71d0886b3ce76da6db0ebf0dfc546152b9093169a9d49dcfc
MD5 7e9f8d74e285cd22a09b84dcd3ff3394
BLAKE2b-256 558b43518cceaac2fbd7b30057a0b795bb89e89867aa3ebc632339f27abdd8a3

See more details on using hashes here.

File details

Details for the file mcpstore-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: mcpstore-0.1.8-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

Hashes for mcpstore-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6158b808e277fd176d854e45c4ac43bd6321ae15323e6a41a472588a304c778c
MD5 13ec5062e27e3e00b1211a9853c75c34
BLAKE2b-256 5400e69b1e1feebd62089afd499b2a215370d48aadbb6afb87efb6046c86a5e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page