模型上下文协议服务器库

一个用于构建模型上下文协议(MCP)服务器的Go库,提供简单直观的API,使AI模型能够与外部工具和数据源交互。

  • by cfichtmueller
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 cfichtmueller/gomcp

使用说明

gomcp(注:这个词汇在中文中没有直接对应的翻译,它可能是某个特定领域或技术中的缩写,根据上下文无法确定其确切含义,因此直接音译为“戈姆赛普”或保持原样“gomcp”作为翻译。)

Go 1.24 | 麻省理工学院许可证

一个用于构建的Go语言库 模型上下文协议(MCP) 服务器。该库提供了一种简单直观的方法来创建MCP服务器,这些服务器能够向AI模型暴露工具和资源。

⚠️ 早期开发这个库正处于非常早期的开发阶段。API尚未稳定,可能会有显著变化。目前还没有任何内容是固定的,而且它尚未完全符合MCP规范。

什么是MCP?

模型上下文协议(MCP)是一种用于将人工智能模型连接到外部工具和数据源的标准。它使人工智能助手能够通过标准化接口与各种服务、数据库、应用程序编程接口(API)和其他资源进行交互。

特点/功能

  • 🚀 表情符号“🚀”在中文中通常被翻译为“火箭”或“飞速前进”,用于表示快速、迅速或充满动力的事物。 简单API易于使用的Go API,用于创建MCP服务器
  • 🛠️(扳手或工具的符号,无直接对应中文,可理解为“工具”或根据上下文具体翻译) 工具支持定义并提供可供人工智能模型调用的工具
  • 🌐(表示“互联网”或“世界”的符号) HTTP传输内置HTTP传输用于基于Web的集成

开始

安装

将 gomcp 添加到您的 Go 项目中:

go get github.com/cfichtmueller/gomcp@v0.1.0

快速入门

以下是一个简单的示例,帮助您入门:

package main

import (
	"context"
	"fmt"
	"log/slog"
	"net/http"

	"github.com/cfichtmueller/gomcp"
	"github.com/cfichtmueller/gomcp/protocol"
)

func main() {
	server := gomcp.NewServer("my-server", "", "1.0.0")

	server.AddTool(&gomcp.Tool{
		Name:        "hello",
		Title:       "Hello World",
		Description: "This is a tool that says hello world",
		InputSchema: protocol.NewInputSchema().
			SetProperty("name", protocol.NewStringProperty("The name to say hello to")).
			SetRequired("name"),
		Handler: func(ctx context.Context, arguments *gomcp.ToolArguments) *protocol.CallToolsResult {
			name, err := arguments.String("name")
			if err != nil {
				return protocol.NewCallToolsResult().AddContent(protocol.NewTextContent().SetText(err.Error())).SetIsError(true)
			}
			content := protocol.NewTextContent().SetText(fmt.Sprintf("Hello, %s!", name))
			return protocol.NewCallToolsResult().AddContent(content)
		},
	})

	transport := gomcp.NewHttpTransport(server)
	http.HandleFunc("/mcp", transport.Handle)
	slog.Info("Starting MCP server on 127.0.0.1:8080")
	http.ListenAndServe("127.0.0.1:8080", nil)
}

这创建了一个简单的MCP服务器,并配备了一个“hello”工具,AI模型可以调用该工具来问候用户。

示例

查看一下 examples/ 完整工作示例的目录:

  • examples/hello_server/ - 基础服务器,配备简单工具,包括“Hello World”和计算器功能
  • 更多示例即将推出。。。

开发状态

这个图书馆目前在 早期发展以下是已实施的内容:

✅ 核心功能:

  • 基本的MCP服务器实现
  • 工具定义与执行
  • HTTP传输
  • 基本协议处理

🚧(施工中/维修中/禁止通行等标识) 进行中:

  • 资源支持
  • 更好的错误处理

📋 翻译成中文是:清单/列表 计划中的:

  • 完全符合MCP规范
  • 认证支持

做出贡献

这个项目目前不接受贡献。

许可证

这个项目遵循MIT许可证授权——详见 许可证 详情请查阅文件。

致谢

  • 为……而打造 模型上下文协议 规范(或规格)
  • 受在Go应用程序中更好地集成AI工具的需求启发

注这个库尚未准备好投入生产环境使用。使用时请自行承担风险,并注意未来版本可能会有重大变更。