返回 MCP 目录
public公开dns本地运行

gomcptest

该项目是一个概念验证(POC),展示了如何通过自定义主机实现模型上下文协议(MCP),用于测试代理系统。核心功能包括OpenAI兼容API、Google Gemini集成、流式响应支持及工具调用能力。

article

README

🚀 gomcptest: 自定义主机实现MCP的概念验证项目

本项目是一个概念验证(POC),展示了如何借助自定义构建的主机实现模型上下文协议(MCP),并与代理化系统进行交互。代码为从头编写,有助于清晰理解底层机制。

查看实验网站上的自动生成文档:https://owulveryck.github.io/gomcptest/

🚀 快速开始

此项目是一个概念验证(POC),展示如何通过自定义构建的主机来实现模型上下文协议(MCP)并与代理化系统进行交互。代码从头开始编写,旨在提供对底层机制的清晰理解。

✨ 主要特性

该项目的主要目标是通过Model Context Protocol(MCP)实现代码库的安全性、可维护性和效率。例如:

  • dispatch_agent 可以专门化为扫描代码库中的安全漏洞。
  • 创建代码审查代理,用于分析拉取请求中潜在的问题。
  • 构建数据分析代理,处理并可视化复杂数据集。
  • 开发自动生成文档的代理,根据代码生成全面的文档。

这些专业的代理可以通过此存储库提供的工具轻松测试和迭代。

📦 安装指南

先决条件

  • Go语言 >= 1.21版本。
  • 对Google Cloud Platform(GCP) Vertex AI API的访问权限。
  • github.com/mark3labs/mcp-go

工具使用gcloud auth login配置的默认GCP登录凭证。

构建工具

要构建项目,请运行以下命令:

go mod tidy
make build

📚 详细文档

项目结构

架构图

  • host/openaiserver:实现一个自定义主机,模拟OpenAI API,使用Google Gemini和函数调用。这是POC的核心。
  • tools:包含多个与MCP兼容的工具,可与主机交互:
    • dispatch-agent:用于处理代理化系统的功能。
    • transformer:实现类似于GPT - 3的文本生成模型。
    • image-generator:使用Imagen系列模型生成图像。

功能说明

| 主机 | 端点 | 描述 | |------------|---------------------------|--------------------------------| | OpenAI | api/v1/chat/completions | 模拟OpenAI API,支持文本交互式聊天和函数调用 | | GPT - 3 | api/v1/gpt-3 | 提供与GPT - 3兼容的接口 | | 图像生成器 | api/v1/image-generator | 使用Imagen系列模型生成图像 |

配置说明

全局配置

| 变量 | 描述 | 默认值 | 是否必填 | |--------|--------------|--------|----------| | PORT | 服务器监听端口 | 8080 | 否 | | LOG_LEVEL | 日志级别(DEBUG, INFO, WARN, ERROR) | INFO | 否 | | IMAGE_DIR | 存储图像的目录 | | 是 |

GCP配置

| 变量 | 描述 | 默认值 | 是否必填 | |----------------|--------------------------------|----------------------------|----------| | GCP_PROJECT | Google Cloud Project ID | | 是 | | GEMINI_MODELS | 逗号分隔的Gemini模型列表 | gemini-1.5-pro,gemini-2.0-flash | 否 | | GCP_REGION | Google Cloud Region | us-central1 | 否 | | IMAGEN_MODELS | 逗号分隔的Imagen模型列表 | | 否 | | IMAGE_DIR | 存储图像的目录 | | 是 |

⚠️ 注意事项

⚠️ 重要提示

此项目是一个概念验证,存在一定的限制。

💡 使用建议

代码按现状提供,仅用于教育目的,以理解如何实现MCP与自定义主机。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端