mcpField
A
AutoMCP

AutoMCP

本地服务
github.com/beaukuhn开发工具184 周前更新

关于 AutoMCP

AutoMCP 根据 YAML 服务定义生成兼容 MCP 的服务端和客户端代码,面向构建 MCP 服务的开发者。它还会生成工具处理程序框架并按服务组织代码;项目目前仍在开发中。

主要功能

  1. 01生成 MCP 服务端代码
  2. 02生成客户端库
  3. 03创建工具处理程序框架
  4. 04按服务组织生成的代码

适用场景

  1. 01根据 YAML 定义搭建服务端
  2. 02为服务生成客户端
  3. 03创建工具实现所需的处理程序框架

MCP 相关

AutoMCP 根据服务定义生成兼容 MCP 的服务端代码和客户端库,并提供用于实现功能的工具处理程序框架。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AutoMCP

AutoMCP 徽标

AutoMCP 是一个用于 Model Context Protocol 的代码生成器,可根据 YAML 服务定义自动生成服务端和客户端代码。

目前仍在开发中。仓库中包含一些临时文件,待完成打包并发布到 npm、pypl 等平台时将会移除。

请参阅 MCP Agent,了解如何在 Agent 工作流中使用它。

功能

  • 生成兼容 MCP 的服务端代码
  • 生成客户端库,方便使用服务
  • 创建用于实现工具功能的处理程序桩代码
  • 在专用目录中按服务组织代码

入门

前提条件
  • Node.js 18 或更高版本
  • npm 或 yarn
安装
  1. 克隆此仓库
  2. 安装依赖项:
    npm install
    
使用方法
定义服务

在 services/[service-name]/ 目录中创建一个 YAML 文件,结构如下:

service:
  name: ServiceName
  version: 1.0.0
  description: Description of your service

tools:
  - name: toolName
    description: Description of what the tool does
    parameters:
      - name: paramName
        type: string
        description: Description of the parameter
    returns:
      type: string
      description: Description of what the tool returns
生成代码

运行生成器脚本:

./bin/automcp.sh generate

此操作将:

  1. 在 generated/[service-name]/[service-name]_server.ts 中创建服务端代码
  2. 在 generated/[service-name]/[service-name]_client.ts 中创建客户端代码
  3. 在 src/custom/[service-name]/[tool-name]Handlers.ts 中创建处理程序桩代码
实现处理程序

编辑 src/custom/[service-name]/ 中生成的处理程序文件,以实现工具功能。

使用生成的客户端
import { ServiceNameClient } from "./generated/service-name/service_name_client.js";

async function main() {
  const client = new ServiceNameClient();

  try {
    await client.connect();

    // Call a tool
    const result = await client.toolName({ paramName: "value" });
    console.log(result);
  } finally {
    await client.disconnect();
  }
}

main().catch(console.error);

示例

请参阅 examples/client_example.ts 文件,查看使用生成的客户端的完整示例。

测试

使用测试脚本验证服务的功能:

./bin/test-service.sh [service-name]

临时目录结构(打包时将改进)

.
├── bin/                    # Scripts
├── examples/               # Example usage
├── generated/              # Generated code
│   ├── service-name/       # Service-specific generated code
│   │   ├── service_name_server.ts
│   │   └── service_name_client.ts
├── services/               # Service definitions
│   └── service-name/       # Service-specific YAML files
├── src/                    # Source code
│   ├── custom/             # Custom handler implementations
│   │   └── service-name/   # Service-specific handlers
│   │       └── toolHandlers.ts
│   └── generator.ts        # Code generator
└── templates/              # Code templates
    ├── client.ts.ejs       # Client template
    └── server.ts.ejs       # Server template

未来计划

  • 支持多种编程语言
  • 添加自定义类型,避免架构与生成的代码不一致
  • 与现有 MCP 解决方案集成
  • 通过提示词和资源机制实现功能
  • 增强复杂工具链的组合机制

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。