mcpField
G
go-mcp-server-mds

go-mcp-server-mds

ローカル
github.com/Warashiファイル・ストレージ181 週間前に更新

go-mcp-server-mds について

go-mcp-server-mdsは、ファイルシステム上のMarkdownファイルをMCPリソースとして提供し、一覧表示と読み取りのツールを備えています。ファイルシステム抽象化を使って文書を公開するGoプロジェクト向けで、YAMLまたはTOMLのフロントマターを解析します。

主な機能

  1. 01MarkdownファイルをMCP経由で提供
  2. 02ファイルとメタデータの一覧表示
  3. 03ファイル内容の読み取り
  4. 04YAMLとTOMLのフロントマター解析
  5. 05fs.FSによるファイルシステム抽象化

活用シーン

  1. 01MCPクライアントへのMarkdown文書の提供
  2. 02フロントマターメタデータによる文書整理

MCP 対応

MCPサーバーとして、Markdownファイルをfile://リソースとして登録し、ファイル一覧と内容読み取りのツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

go-mcp-server-mds

ファイルシステム上の Markdown ファイルを提供する、Model Context Protocol(MCP)サーバーの Go 実装です。

概要

このサーバーを使用すると、Model Context Protocol を介して Markdown ファイルを公開し、リソースとしてアクセスできるようにするとともに、Markdown ファイルの一覧表示や読み取りを行うツールを利用できます。YAML または TOML のフロントマターを含む Markdown ファイルに対応しています。

機能

  • MCP 経由で Markdown ファイルを提供
  • メタデータ付きで利用可能な Markdown ファイルをすべて一覧表示
  • 個々の Markdown ファイルの内容を読み取り
  • YAML および TOML のフロントマターに対応
  • fs.FS を使用したファイルシステムの抽象化
  • URI ベースのアクセスによるリソース管理

フロントマターのサポート

このサーバーは、YAML または TOML のフロントマターを含む Markdown ファイルに対応しています。フロントマターは、区切り文字で囲まれた、Markdown ファイルの先頭に配置するメタデータです。

YAML フロントマター

YAML フロントマターでは、区切り文字として --- を使用します。

---
title: My Document
date: 2024-03-21
tags: [documentation, markdown]
---

# Document Content
TOML フロントマター

TOML フロントマターでは、区切り文字として +++ を使用します。

+++
title = "My Document"
date = 2024-03-21
tags = ["documentation", "markdown"]
+++

# Document Content

フロントマターのメタデータは解析され、サーバーのツールおよびリソースの説明から利用できます。このメタデータには、有効な YAML または TOML のデータを含めることができ、Markdown ドキュメントの整理や説明に役立ちます。

インストール

go get github.com/Warashi/go-mcp-server-mds

使用方法

MCP Markdown サーバーを作成して使用する基本的な例を以下に示します。

package main

import (
    "context"
    "os"

    mcpmds "github.com/Warashi/go-mcp-server-mds"
)

func main() {
    // Create a new server using the current directory
    server, err := mcpmds.New(
        "markdown-server",
        "A server that provides access to markdown files",
        os.DirFS("."),
    )
    if err != nil {
        panic(err)
    }

    // Start the server
    if err := server.ServeStdio(context.Background()); err != nil {
        panic(err)
    }
}

コマンドラインツール(mcp-server-mds)

このリポジトリには、サーバーを直接実行するコマンドラインツール mcp-server-mds が含まれています。

インストール

コマンドラインツールをビルドするには、次のようにします。

go install github.com/Warashi/go-mcp-server-mds/cmd/mcp-server-mds@latest
実行

サーバーを実行するには、ビルドしたバイナリを実行します。指定したディレクトリの Markdown ファイルを、標準入力/出力経由で提供します。

$HOME/go/bin/mcp-server-mds -path /path/to/your/markdown/files

フラグ:

  • -path:提供する Markdown ファイルが含まれるディレクトリを指定します。デフォルトは現在のディレクトリ(.)です。
  • -name:サーバー名を設定します。デフォルトは mcp-server-mds です。
  • -description:サーバーの説明を設定します。デフォルトは Markdown Documents Server です。

利用可能なツール

list_{server-name}_markdown_files

サーバーが管理するすべての Markdown ファイルを一覧表示します。次のようなメタデータを返します。

  • ファイルパス
  • ファイルサイズ
  • 解析済みのフロントマター(利用可能な場合)
read_{server-name}_markdown_file

指定した Markdown ファイルを読み取ります。次の項目が必要です。

  • path:Markdown ファイルへのパス

返される内容:

  • ファイルパス
  • ファイルサイズ
  • 解析済みのフロントマター
  • ファイルの全内容

リソースへのアクセス

リソースには file:// URI でアクセスできます。各 Markdown ファイルは、次の情報を持つリソースとして登録されます。

  • URI:file://{path}
  • 名前:ベースファイル名
  • 説明:JSON 形式のフロントマター
  • MimeType:text/markdown
  • サイズ:バイト単位のファイルサイズ

ライセンス

このプロジェクトは MIT License のもとでライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コントリビューション

コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。