关于 go-mcp-server-mds
go-mcp-server-mds 通过 MCP 将文件系统中的 Markdown 文件提供为资源,并支持列出和读取文件。它面向需要通过文件系统抽象共享文档的 Go 项目,也能解析 YAML 或 TOML frontmatter。
主要功能
- 01通过 MCP 提供 Markdown 文件
- 02列出文件及元数据
- 03读取文件内容
- 04解析 YAML 和 TOML frontmatter
- 05使用 fs.FS 抽象文件系统
适用场景
- 01向 MCP 客户端提供 Markdown 文档
- 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。