mcpField
G
go-mcp-server-mds

go-mcp-server-mds

本地服务
github.com/Warashi文件与存储181 周前更新

关于 go-mcp-server-mds

go-mcp-server-mds 通过 MCP 将文件系统中的 Markdown 文件提供为资源,并支持列出和读取文件。它面向需要通过文件系统抽象共享文档的 Go 项目,也能解析 YAML 或 TOML frontmatter。

主要功能

  1. 01通过 MCP 提供 Markdown 文件
  2. 02列出文件及元数据
  3. 03读取文件内容
  4. 04解析 YAML 和 TOML frontmatter
  5. 05使用 fs.FS 抽象文件系统

适用场景

  1. 01向 MCP 客户端提供 Markdown 文档
  2. 02按 frontmatter 信息整理文档

MCP 相关

该 MCP 服务将 Markdown 文件注册为 file:// 资源,并提供列出文件和读取内容的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

go-mcp-server-mds

一个 Go 语言实现的模型上下文协议(MCP)服务,用于从文件系统提供 Markdown 文件。

概述

此服务提供了一种通过模型上下文协议公开 Markdown 文件的方式,使其可作为资源访问,并提供用于列出和读取 Markdown 文件的工具。支持带有 YAML 或 TOML frontmatter 的 Markdown 文件。

功能

  • 通过 MCP 提供 Markdown 文件
  • 列出所有可用的 Markdown 文件及其元数据
  • 读取单个 Markdown 文件的内容
  • 支持 YAML 和 TOML frontmatter
  • 使用 fs.FS 抽象文件系统
  • 通过基于 URI 的方式管理资源

Frontmatter 支持

此服务支持带有 YAML 或 TOML frontmatter 的 Markdown 文件。Frontmatter 是放置在 Markdown 文件开头、由分隔符括起来的元数据。

YAML Frontmatter

YAML frontmatter 使用 --- 作为分隔符:

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

# Document Content
TOML Frontmatter

TOML frontmatter 使用 +++ 作为分隔符:

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

# Document Content

Frontmatter 元数据会经过解析,并通过服务的工具和资源描述提供。此元数据可以包含任何有效的 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 文件。返回的元数据包括:

  • 文件路径
  • 文件大小
  • 已解析的 frontmatter(如果有)
read_{server-name}_markdown_file

读取指定的 Markdown 文件。需要提供:

  • path:Markdown 文件的路径

返回:

  • 文件路径
  • 文件大小
  • 已解析的 frontmatter
  • 文件完整内容

资源访问

资源可通过 file:// URI 访问。每个 Markdown 文件都会注册为一个资源,包含:

  • URI:file://{path}
  • 名称:基础文件名
  • 描述:JSON 编码的 frontmatter
  • MimeType:text/markdown
  • 大小:文件大小(字节)

许可证

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

贡献

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。