Lingwuxin/Obsidian-md-MCP-Server
3.1
If you are the rightful owner of Obsidian-md-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Obsidian Markdown MCP Server is designed to manage SCP Foundation documents, offering features like document reading, link management, and bidirectional link generation.
Tools
4
Resources
0
Prompts
0
Obsidian Markdown MCP Server
一个用于管理SCP基金会文档的MCP (Model Context Protocol) 服务器,提供文档读取、链接管理和双向链接生成功能。
🚀 功能特性
� SCP文档管理
- 文档读取: 根据SCP编号读取完整文档内容
- 分行读取: 支持按行号范围读取文档片段
- 智能目录: 自动根据SCP编号分配到对应子目录
- 链接提取: 识别现有的Obsidian和Markdown格式链接
🛠️ 提供的工具
1. get_scp_document
根据SCP编号获取对应的文档内容。
参数:
scp_id(str): SCP编号,如scp-001、scp-5001
返回值:
- 完整的文档内容字符串
2. get_scp_document_lines
根据SCP编号获取对应文档内容的指定行范围。
参数:
scp_id(str): SCP编号,如scp-001、scp-5001start(int): 起始行号end(int): 结束行号
返回值:
- 指定行范围的文档内容
3. put_links
保存文档中找到的潜在链接目标列表。
参数:
scp_id(str): SCP编号,如scp-001、scp-5001links(List[str]): 文档中找到的潜在链接目标列表
返回值:
- 布尔值,表示是否成功保存链接数据
4. extract_existing_links
提取文档中已存在的链接。
参数:
text(str): Markdown文档的文本内容
返回值:
- 现有链接列表
📥 安装和运行
环境要求
- Python 3.11+
- MCP 1.13.1+
- uv (推荐的Python包管理工具)
安装依赖
# 使用 uv 安装依赖
uv install
环境配置
在项目根目录创建 .env 文件:
SCP_MD_LINKING_OUTPUT_DIR=./SCP-Linking
SCP_MD_UNLINK_OUTPUT_DIR=./SCP-Unlink
TRANSPORT=sse
PORT=8088
运行服务器
# 使用 uv 运行
uv run main.py
🎯 使用示例
基本用法
# 获取SCP文档
document = get_scp_document("scp-173")
# 获取文档的指定行
lines = get_scp_document_lines("scp-173", 10, 20)
# 保存链接数据
success = put_links("scp-173", ["SCP-096", "基金会", "收容"])
# 提取现有链接
existing_links = extract_existing_links(document)
目录结构说明
SCP-Unlink/: 存储原始SCP文档的目录SCP-Linking/: 存储链接分析结果的目录
文档按编号范围自动分组:
001-1000/: SCP-001 到 SCP-10001001-2000/: SCP-1001 到 SCP-2000- 以此类推...
🔧 技术架构
核心组件
- FastMCP Server: 基于MCP协议的服务器框架
- File Management: 智能文件路径管理和目录分组
- Link Processing: 链接提取和数据持久化
传输协议支持
- stdio: 标准输入输出
- sse: Server-Sent Events (默认)
- streamable-http: HTTP流式传输
目录分组算法
自动根据SCP编号计算对应的子目录:
# 示例:scp-1234 -> "1001-2000" 目录
# 示例:scp-173 -> "001-1000" 目录
🤝 贡献指南
欢迎提交Issue和Pull Request来改进这个项目。
项目结构
Obsidian-md-MCP-Server/
├── main.py # 程序入口
├── pyproject.toml # 项目配置
├── src/obsidian_md_mcp/
│ ├── server.py # MCP服务器实现
│ └── filepath_tool.py # 文件路径工具
└── test/ # 测试文件
🔗 相关项目
- SCP-Obsidian - 主项目
- SCP-Obsidian-Markdown - 应用项目
- MCP - Model Context Protocol