一个连接AI助手与包含Obsidian仓库的GitHub存储库的模型上下文协议(MCP)服务器。此服务器使您的知识库与GitHub无缝集成,允许AI助手读取、搜索和分析您的Obsidian笔记和文档。
许多Obsidian用户将其仓库存储在GitHub上以进行备份、版本控制和协作。此MCP服务器弥合了您托管在GitHub上的Obsidian仓库与AI助手之间的差距,实现以下功能:
filename:通过精确文件名查找文件(适用于“OKR 2025”类型的搜索)path:在文件路径中搜索content:在文件内容中搜索all:跨文件名、路径和内容进行全面搜索安装Obsidian GitHub MCP最简单的方法是使用Smithery:
# 对于Claude Desktop
npx -y @smithery/cli install @Hint-Services/obsidian-github-mcp --client claude
# 对于Cursor
npx -y @smithery/cli install @Hint-Services/obsidian-github-mcp --client cursor
# 对于Windsurf
npx -y @smithery/cli install @Hint-Services/obsidian-github-mcp --client windsurf
# 对于Cline
npx -y @smithery/cli install @Hint-Services/obsidian-github-mcp --client cline
npm install obsidian-github-mcp
在您的MCP设置文件中添加服务器,使用以下配置:
{
"mcpServers": {
"obsidianGithub": {
"command": "npx",
"args": ["-y", "obsidian-github-mcp"],
"env": {
"GITHUB_TOKEN": "your-github-token",
"GITHUB_OWNER": "your-github-username",
"GITHUB_REPO": "your-obsidian-vault-repo"
}
}
}
}
GITHUB_TOKEN:您的GitHub个人访问令牌(在此创建)GITHUB_OWNER:GitHub仓库的所有者/组织GITHUB_REPO:包含您的Obsidian仓库的仓库名称您的GitHub令牌需要以下权限:
repo(对于私有仓库)或 public_repo(对于公共仓库)read:org(如果访问组织仓库){
"tool": "getFileContents",
"arguments": {
"filePath": "Daily Notes/2024-01-15.md"
}
}
{
"tool": "searchFiles",
"arguments": {
"query": "OKR 2025",
"searchIn": "filename"
}
}
{
"tool": "searchFiles",
"arguments": {
"query": "Daily Notes",
"searchIn": "path"
}
}
{
"tool": "searchFiles",
"arguments": {
"query": "machine learning algorithms",
"searchIn": "content",
"perPage": 10
}
}
{
"tool": "searchFiles",
"arguments": {
"query": "project planning",
"searchIn": "all"
}
}
{
"tool": "searchFiles",
"arguments": {
"query": "path:*.md extension:md",
"searchIn": "content"
}
}
{
"tool": "getCommitHistory",
"arguments": {
"days": 30,
"includeDiffs": true,
"maxCommits": 10
}
}
问题:搜索“OKR 2025”找不到名为“OKR 2025.md”的文件
解决方案:使用 searchIn: "filename" 参数:
{
"tool": "searchFiles",
"arguments": {
"query": "OKR 2025",
"searchIn": "filename"
}
}
精确短语:使用引号进行多词搜索
{
"query": "\"project planning 2025\"",
"searchIn": "content"
}
文件扩展名:查找特定文件类型
{
"query": "path:*.md",
"searchIn": "content"
}
目录特定:在文件夹内搜索
{
"query": "path:\"Daily Notes/\"",
"searchIn": "content"
}
obsidian-github-mcp/
├── src/
│ ├── index.ts # 主MCP服务器入口点
│ └── github/ # GitHub API集成
│ ├── client.ts # GitHub客户端实现
│ └── types.ts # TypeScript类型定义
├── docs/ # 文档
├── package.json # 项目配置
└── tsconfig.json # TypeScript配置
如果您有兴趣为此项目贡献代码或使用此服务器开发自己的工具,请参阅开发指南。
pnpm install - 安装依赖pnpm run build - 构建项目pnpm run dev - 以调试模式运行pnpm run inspector - 启动MCP调试器进行测试如果您正在从旧的 mcp-private-github-search 包迁移:
更新配置中的包名:
{
"mcpServers": {
"obsidianGithub": {
"command": "npx",
"args": ["-y", "obsidian-github-mcp"]
}
}
}
功能保持不变 - 所有现有工具的工作方式相同
考虑新的Obsidian重点使用案例和工作流
有关MCP生态系统的更多信息,请参考:
“未来已经到来,只是分布不均”
— 威廉·吉布森,作家
Hint Services是一家精品咨询公司,致力于开发和扩展用户界面如何利用人工智能技术。我们在AI和用户体验的交汇处架构雄心,由Ben Hofferber创立并领导。
我们为希望拥抱AI工具而不想成为开发者的设计师团队提供专业的人工智能研讨会。了解我们的培训和研讨会。