返回市场
语言链-MCP适配器

语言链-MCP适配器

作者:i2y42 星标更新:2025-08-15

项目介绍

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() {
    // 使用标准输入输出创建一个MCP客户端
    mcpClient, err := client.NewStdioMCPClient(
        "./an-mcp-server",  // MCP服务器可执行文件路径
        nil,                // 如需额外环境变量,请在此处设置
    )
    if err != nil {
        log.Fatalf("创建MCP客户端失败: %v", err)
    }
    defer mcpClient.Close()

    // 创建适配器
    adapter, err := langchaingo_mcp_adapter.New(mcpClient)
    if err != nil {
        log.Fatalf("创建适配器失败: %v", err)
    }

    // 获取所有来自MCP服务器的工具
    mcpTools, err := adapter.Tools()
    if err != nil {
        log.Fatalf("获取工具失败: %v", err)
    }

    ctx := context.Background()

    // 创建一个Google AI LLM客户端
    llm, err := googleai.New(
        ctx,
        googleai.WithDefaultModel("gemini-2.0-flash"),
        googleai.WithAPIKey(os.Getenv("GOOGLE_API_KEY")),
    )
    if err != nil {
        log.Fatalf("创建Google AI客户端失败: %v", err)
    }

    // 使用工具创建一个代理
    agent := agents.NewOneShotAgent(
        llm,
        mcpTools,
        agents.WithMaxIterations(3),
    )
    executor := agents.NewExecutor(agent)

    // 使用代理
    question := "你能帮我使用可用工具分析这些数据吗?"
    result, err := chains.Run(
        ctx,
        executor,
        question,
    )
    if err != nil {
        log.Fatalf("代理执行错误: %v", err)
    }

    log.Printf("代理结果: %s", result)
}

示例应用

查看example目录中的完整示例:

  • example/agent:演示如何使用适配器与各种LLM提供商(Google AI、OpenAI、Anthropic)
  • example/server:提供一个URL抓取工具的最小MCP服务器示例

示例代理支持多个LLM提供商:

  • Google AI (Gemini):设置GOOGLE_API_KEY
  • OpenAI:设置OPENAI_API_KEY
  • Anthropic (Claude):设置ANTHROPIC_API_KEY

示例是跨平台的,在Windows、macOS和Linux上均可运行。示例会自动构建并运行MCP服务器。详细设置说明请参阅示例README

本样本中的mcp-curl服务器基于这篇博客中的代码。

要求

许可证

本项目采用MIT许可证——详情请见LICENSE文件。

贡献

欢迎贡献!请随意提交Pull Request。

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加一些惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开Pull Request