IL

i2y/langchaingo-mcp-adapter

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

48 stars 9 forks 质量 47 趋势 13MIT

一个连接 LangChain Go 工具与模型上下文协议(MCP)服务器的 Go 适配器。

概览

一个连接 LangChain Go 工具与模型上下文协议(MCP)服务器的 Go 适配器。 该适配器允许你使用MCP服务器上定义的工具,并附带LangChain Go库。它实现了将MCP工具无缝集成到LangChain Go代理基础设施所需的接口。 - 连接任意MCP服务器 - 自动从指定MCP服务器发现MCP工具并向LangChain Go开放- 将MCP工具包装为LangChain Go工具 完整示例请参见示例目录: - 示例/代理:演示如何将适配器与各种大型语言模型提供商(Google AI、OpenAI、Anthropic)结合使用- 示例/服务器:一个极简的MCP服务器示例,提供URL获取工具 示例代理支持多个LLM提供者:- : Set GOOGLE_API_KEY - : Set OPENAI_API_KEY - : Set ANTHROPIC_API_KEY 示例是跨平台的,适用于Windows、macOS和Linux。示例会自动从源代码构建并运行MCP服务器。

概述(AI 翻译)

一个连接 LangChain Go 工具与模型上下文协议(MCP)服务器的 Go 适配器。

概述

该适配器允许你使用MCP服务器上定义的工具,并附带LangChain Go库。它实现了将MCP工具无缝集成到LangChain Go代理基础设施所需的接口。

特色

  • 连接到任意MCP服务器
  • 自动从指定的MCP服务器中发现MCP工具,并向LangChain Go开放
  • 将MCP工具包装为LangChain Go工具

安装

用途

应用示例

完整示例请参见 example 目录:

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

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

  • Google AI(双子座):设置 GOOGLE_API_KEY
  • OpenAI:集合 OPENAI_API_KEY
  • 拟人(克劳德):集合 ANTHROPIC_API_KEY

该示例为跨平台,适用于Windows、macOS和Linux。该示例自动从源代码构建并运行MCP服务器。详见示例README中的详细设置说明。

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

LangChainGo MCP Adapter

A Go adapter that bridges LangChain Go tools with Model Context Protocol (MCP) servers.

Overview

This adapter allows you to use tools defined on an MCP server with the LangChain Go library. It implements the necessary interfaces to integrate MCP tools seamlessly with LangChain Go’s agent infrastructure.

Features

  • Connect to any MCP server
  • Automatically discover MCP tools from a specified MCP server and make them available to LangChain Go
  • Wrap MCP tools as LangChain Go tools

Installation

go get github.com/i2y/langchaingo-mcp-adapter

Usage

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 Applications

See the example directory for complete examples:

  • example/agent: Demonstrates how to use the adapter with various LLM providers (Google AI, OpenAI, Anthropic)
  • example/server: A minimal MCP server example that provides a URL fetching tool

The example agent supports multiple LLM providers:

  • Google AI (Gemini): Set GOOGLE_API_KEY
  • OpenAI: Set OPENAI_API_KEY
  • Anthropic (Claude): Set ANTHROPIC_API_KEY
在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →