Back to MCP directory
publicPublicdnsLocal runtime

automcp

automcp是一个工具,能够将现有的AI代理框架(如CrewAI、LangGraph等)轻松转换为MCP服务器,实现标准化接口访问。支持多种框架的适配和部署,提供快速启动和配置功能。

article

README

🚀 自动创建代理适配器指南

本指南将帮助你快速掌握如何使用 AutomCP 自动创建代理适配器,并将其集成到 MCP 客户端中。

🚀 快速开始

要开始使用 AutomCP,请按照以下步骤进行安装:

📦 安装指南

  1. 通过pip安装:

    pip install automcp
    
  2. 通过GitHub克隆并运行:

    git clone https://github.com/your-repository/automcp.git
    cd automcp && python -m pip install .
    
  3. 创建新的代理适配器: 使用以下命令生成新的适配器文件:

    automcp init new_adapter
    

💻 使用示例

创建新的代理适配器

基本结构

步骤1:automcp/adapters/目录下新建一个Python文件,例如framework.py

步骤2: 按照以下代码模板编写你的适配器:

# automcp/adapters/framework.py
import json
import contextlib
import io
from typing import Any, Callable, Type
from pydantic import BaseModel

def create_framework_adapter(
    agent_instance: Any,
    name: str,
    description: str,
    input_schema: Type[BaseModel],
) -> Callable:
    """创建一个与指定框架兼容的代理适配器"""

    # 获取输入模式中的字段名称及其类型
    schema_fields = input_schema.model_fields

    # 生成函数参数字符串
    params_str = ", ".join(
        f"{field_name}: {field_info.annotation.__name__}"
        for field_name, field_info in schema_fields.items()
    )

    # 生成函数体,用于构造输入模式并调用代理框架的方法
    body_str = f"""def run_agent({params_str}):
        inputs = input_schema({', '.join(f'{name}={name}' for name in schema_fields)})
        with contextlib.redirect_stdout(io.StringIO()):
            result = agent_instance.framework_specific_run(inputs=inputs.model_dump())
        return result.framework_specific_result()
    """

    # 创建命名空间以执行动态代码
    namespace = {
        "input_schema": input_schema,
        "agent_instance": agent_instance,
        "json": json,
        "contextlib": contextlib,
        "io": io,
    }

    # 执行函数定义并获取生成的函数
    exec(body_str, namespace)
    run_agent = namespace["run_agent"]

    # 设置函数的元数据
    run_agent.__name__ = name
    run_agent.__doc__ = description

    return run_agent

示例实现

假设我们正在为一个名为AwesomeFramework的新代理框架创建适配器,代码如下:

# automcp/adapters/awesome_framework.py
from .base import AgentAdapter

class AwesomeFrameworkAdapter(AgentAdapter):
    def __init__(self, agent_instance, name, description, input_schema):
        super().__init__(agent_instance, name, description, input_schema)
        
    def create_adapter(self):
        return self.create_framework_adapter()
    
    @staticmethod
    def create_framework_adapter():
        # 在此处实现具体的适配器逻辑
        pass

与MCP客户端集成

使用示例配置

步骤1: 在项目根目录下创建一个.cursor文件夹。

步骤2:.cursor文件夹中添加一个mcp.json文件,内容如下:

{
    "mcpServers": {
        "my-awesome-adapter": {
            "type": "custom",
            "module": "awesome_framework_adapter",
            "class": "AwesomeFrameworkAdapter",
            "init": {
                "agent_instance": "path.to.your.agent.instance",
                "name": "Awesome Framework Adapter",
                "description": "A powerful framework for NLP tasks.",
                "input_schema": "path.to.input.schema.Model"
            }
        }
    }
}

📚 详细文档

注意事项

⚠️ 重要提示

  1. 路径规范: 确保所有模块和类的路径正确无误。
  2. 依赖管理: 在使用前确保安装了所有必要的依赖项。
  3. 错误处理: 在生产环境中建议添加适当的异常捕获机制。

通过以上步骤,你可以轻松地为新的代理框架创建适配器,并将其集成到各种MCP客户端中。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client