MM

mark3labs/mcp-go

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

9206 stars 924 forks 品質 72 トレンド 54MIT

モデルコンテキストプロトコル(MCP)のGo実装で、LLMアプリケーションと外部データソースおよびツール間のシームレスな統合を可能にします。

概要

モデルコンテキストプロトコル(MCP)のGo実装で、LLMアプリケーションと外部データソースおよびツール間のシームレスな統合を可能にします。 MCP Goは複雑なプロトコルの詳細やサーバー管理をすべて管理しているので、優れたツール作りに集中できます。高レベルで使いやすいことを目指しています。 * : 高レベルインターフェースはコードの削減と開発の迅速さを意味する * : 最小限のボイラープレートでMCPサーバーを構築する * ***: MCP GoはコアMCP仕様の完全な実装を目指しています 🚨 🚧 🏗️ MCP Goは現在活発に開発中であり、MCP仕様自体も同様です。コア機能は動作していますが、いくつかの高度な機能はまだ進行中です。 計算機ツールといくつかのデータを公開するシンプルなMCPサーバーを作成しましょう。 モデルコンテキストプロトコル(MCP)は、安全かつ標準化された方法でデータや機能をLLMアプリケーションに公開するサーバーを構築できるようにします。これはウェブAPIのようなもので、特にLLMのやり取り向けに設計されています。

概要(AI 翻訳)

モデルコンテキストプロトコル(MCP)のGo実装で、LLMアプリケーションと外部データソースおよびツール間のシームレスな統合を可能にします。

DiscordでSDKについて語り合おう

それだ!

MCP Goは複雑なプロトコルの詳細やサーバー管理をすべて管理しているので、優れたツール作りに集中できます。高レベルで使いやすいことを目指しています。

主な特徴:

  • 高速:高レベルインターフェースはコードが少なく、開発が速くなることを意味します
  • シンプル:最小限のボイラープレートでMCPサーバーを構築する
  • 完了*:MCP GoはコアMCP仕様の完全な実装を提供することを目指しています

(強調は目的)

🚨 🚧 🏗️ MCP Goは活発に開発中であり、MCP仕様自体も同様です。コア機能は動作していますが、いくつかの高度な機能はまだ進行中です。

目次

  • 設置
  • クイックスタート
  • MCPって何?
  • コアコンセプト
  • サーバー
  • リソース
  • ツール
  • プロンプト
  • 例
  • 特典
  • 輸送船
  • OAuth保護リソースメタデータ
  • セッション管理
  • 基本セッション処理
  • セッションごとのツール
  • ツールフィルタリング
  • 文脈と共に作業する
  • リクエストフック
  • ツールハンドラーミドルウェア
  • サーバーコードの再生

設置

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

package main

import (
    "context"
    "fmt"

    "github.com/mark3labs/mcp-go/mcp"
    "github.com/mark3labs/mcp-go/server"
)

func main() {
    // Create a new MCP server
    s := server.NewMCPServer(
        "Demo 🚀",
        "1.0.0",
        server.WithToolCapabilities(false),
    )

    // Add tool
    tool := mcp.NewTool("hello_world",
        mcp.WithDescription("Say hello to someone"),
        mcp.WithString("name",
            mcp.Required(),
            mcp.Description("Name of the person to greet"),
        ),
    )

    // Add tool handler
    s.AddTool(tool, helloHandler)

    // Start the stdio server
    if err := server.ServeStdio(s); err != nil {
        fmt.Printf("Server error: %v\n", err)
    }
}

func helloHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
    name, err := request.RequireString("name")
    if err != nil {
        return mcp.NewToolResultError(err.Error()), nil
    }

    return mcp.NewToolResultText(fmt.Sprintf("Hello, %s!", name)), nil
}

That’s it!

MCP Go handles all the complex protocol details and server management, so you can focus on building great tools. It aims to be high-level and easy to use.

Key features:

  • Fast: High-level interface means less code and faster development
  • Simple: Build MCP servers with minimal boilerplate
  • Complete*: MCP Go aims to provide a full implementation of the core MCP specification

(*emphasis on aims)

🚨 🚧 🏗️ MCP Go is under active development, as is the MCP specification itself. Core features are working but some advanced capabilities are still in progress.

Table of Contents

GitHub で README 全文を見る

インストール

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

Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →