使用说明
LangChainGo MCP适配器
一个Go适配器,将LangChain Go工具与模型上下文协议(MCP)服务器连接起来。
概述
此适配器允许您使用MCP服务器上定义的具有LangChain Go库的工具。它实现了必要的接口,将MCP工具与LangChain Go的代理基础设施无缝集成。
特性
- 连接到任何MCP服务器
- 从指定的MCP服务器自动发现MCP工具,并将其提供给LangChain Go
- 将MCP工具包装为LangChain Go工具
安装
go get github.com/i2y/langchaingo-mcp-adapter
用法
package main
import (
"context"
"log"
"os"
"github.com/i2y/langchaingo-mcp-adapter"
"github.com/mark3labs/mcp-go/client"
"github.com/tmc/langchaingo/agents"
"github.com/tmc/langchaingo/chains"
"github.com/tmc/langchaingo/llms/googleai"
"github.com/tmc/langchaingo/tools"
)
func main() {
// Create an MCP client using stdio
mcpClient, err := client.NewStdioMCPClient(
"./an-mcp-server", // Path to an MCP server executable
nil, // Additional environment variables if needed
)
if err != nil {
log.Fatalf("Failed to create MCP client: %v", err)
}
defer mcpClient.Close()
// Create the adapter
adapter, err := langchaingo_mcp_adapter.New(mcpClient)
if err != nil {
log.Fatalf("Failed to create adapter: %v", err)
}
// Get all tools from MCP server
mcpTools, err := adapter.Tools()
if err != nil {
log.Fatalf("Failed to get tools: %v", err)
}
ctx := context.Background()
// Create a Google AI LLM client
llm, err := googleai.New(
ctx,
googleai.WithDefaultModel("gemini-2.0-flash"),
googleai.WithAPIKey(os.Getenv("GOOGLE_API_KEY")),
)
if err != nil {
log.Fatalf("Create Google AI client: %v", err)
}
// Create a agent with the tools
agent := agents.NewOneShotAgent(
llm,
mcpTools,
agents.WithMaxIterations(3),
)
executor := agents.NewExecutor(agent)
// Use the agent
question := "Can you help me analyze this data using the available tools?"
result, err := chains.Run(
ctx,
executor,
question,
)
if err != nil {
log.Fatalf("Agent execution error: %v", err)
}
log.Printf("Agent result: %s", result)
}
示例应用程序
请参阅 example 完整示例目录:
example/agent:演示如何将适配器与各种LLM提供者(Google AI、OpenAI、Anthropic)一起使用example/server:一个提供URL获取工具的最小MCP服务器示例
示例代理支持多个LLM提供程序:
- 谷歌人工智能(双子座):设置
GOOGLE_API_KEY - OpenAI:设置
OPENAI_API_KEY - 人类学(克劳德):设置
ANTHROPIC_API_KEY
该示例是跨平台的,适用于Windows、macOS和Linux。该示例从源代码自动构建并运行MCP服务器。请参阅 示例README 有关详细的设置说明。
此示例中的mcp-curl服务器基于以下代码 这个博客.
需求
- 达到1.23或更高
- tmc/langchaingo
- mark3labs/mcp go
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求