Token导航 LogoToken导航TokenDH.com
Sigilderg Custom MCP logo
开发工具stdio官方级别未说明来源级核验

Sigilderg Custom MCP

MCP Server

Sigil MCP服务器是一个提供本地代码仓库导航和搜索功能的工具,支持符号搜索、三元组索引和语义导航,适用于AI辅助编程和开发效率提升。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
代码搜索代码索引Python开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Superuser666-Sigil

提供方

Superuser666-Sigil

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .[server-full]

详细介绍

一个模型上下文协议(MCP)服务器,提供类似IDE的代码导航和本地存储库搜索。为ChatGPT等AI助手提供强大的代码探索功能,包括符号搜索、三元组索引和语义导航。

快速入门

docs/QUICKSTART.md 查找到工作配置的最快路径和最常见的旋钮(索引路径、repos、嵌入开/关、管理设置)。

特性

混合代码搜索

  • 使用三元组索引进行快速文本搜索(灵感来自GitHub的Blackbird)
  • Trigram商店使用RocksDB通过 rocksdict (安装时 pip install -e .[trigrams-rocksdict]);SQLite回退已删除。
  • 基于符号的函数、类、方法和变量搜索
  • LanceDB支持的向量嵌入语义代码搜索(ANN查询,每个仓库向量存储)
  • 显示代码大纲的文件结构视图
  • 具有文件监视功能的自动索引更新(可选)

生产就绪

  • 线程安全并发访问(SQLite WAL模式+RLock序列化)
  • 文件监视器、HTTP处理程序和向量索引安全并行运行
  • 并发操作中没有“数据库被锁定”错误
  • 用于操作管理(索引重建、统计数据、日志)的管理员API
  • 具有标头编辑功能的全面请求/响应日志记录

企业安全

  • OAuth 2.0身份验证,支持PKCE远程访问
  • 本地连接旁路(本地主机不需要身份验证)
  • API密钥回退和IP白名单

可用工具

  • index_repository -通过符号提取构建可搜索索引
  • search_code -跨存储库的快速子字符串搜索
  • goto_definition -查找符号定义
  • list_symbols -查看文件/仓库结构
  • list_mcp_tools, external_mcp_prompt -发现注册到Sigil的外部MCP工具
  • build_vector_index -为代码生成语义嵌入(可选)
  • semantic_search -使用嵌入的自然语言代码搜索
  • list_repos, read_repo_file, list_repo_files, search_repo -基本操作
  • get_index_stats, ping -服务器信息和健康检查

快速开始

安装

克隆和安装依赖关系:

git clone https://github.com/Superuser666-Sigil/SigilDERG-Custom-MCP.git
cd SigilDERG-Custom-MCP
pip install -e .[server-full]

默认嵌入运行时: llamacpp 使用Jina v2代码嵌入(768 dim) ./models/jina/jina-embeddings-v2-base-code-Q4_K_M.gguf.

安装用于符号提取的通用Ctag(可选但推荐):

macOS: brew install universal-ctags Ubuntu/Debian: sudo apt install universal-ctags Arch Linux: sudo pacman -S ctags

配置

复制示例配置并使用存储库路径进行编辑:

cp config.example.json config.json
# Edit config.json

配置示例:

{
  "repositories": {
    "my_project": "/absolute/path/to/your/project",
    "another_repo": "/path/to/another/repo"
  }
}

或者,使用环境变量:

export SIGIL_REPO_MAP="my_project:/path/to/project;another:/path/to/another"

运行服务器

建议:使用重启脚本(同时启动MCP服务器和管理UI):

./scripts/restart_servers.sh

此脚本将:

  • 停止任何正在运行的服务器进程
  • 在端口8000上启动MCP服务器
  • 在端口5173上启动管理UI前端
  • 使用以下命令运行这两个进程 nohup 因此,它们在终端关闭后仍然存在

手动启动(仅限MCP服务器):

python -m sigil_mcp.server

停止所有服务器:

./scripts/restart_servers.sh --stop

首次运行时,将生成OAuth凭据。保存从ChatGPT连接的客户端ID和客户端密码。

连接到ChatGPT

\[!重要\] 使用Cloudflare隧道? 您必须禁用机器人战斗模式,否则ChatGPT的OAuth将失败。\ 📖 看 Cloudflare OAuth问题和解决方案 了解详情。
  1. 通过ngrok曝光: ngrok http 8000 (或使用Cloudflare隧道)
  2. 在ChatGPT中,添加具有OAuth身份验证的MCP连接器
  3. 在服务器启动时使用OAuth凭据
  4. 开始使用:“在我的代码中搜索异步函数”

重要:服务器已配置为ChatGPT兼容性:

  • DNS重新绑定保护已禁用(ChatGPT发送ngrok主机标头)
  • MCP端点安装在根节点 / (不是 /mcp)
  • OAuth身份验证仍处于活动状态并且是必需的

docs/CHATGPT_SETUP.md 详细说明。

使用示例

一旦作为MCP服务器连接到ChatGPT:

You: "Index my project repository"
ChatGPT: Indexed 342 files, found 1,847 symbols in 3.2 seconds

You: "Find where the HttpClient class is defined"
ChatGPT: Found in project::src/http/client.py at line 45

You: "Search for async functions"
ChatGPT: Found 23 matches across 8 files

You: "Build vector index for semantic search"
ChatGPT: Indexed 856 chunks from 342 documents

You: "Find code that handles user authentication"
ChatGPT: Found 5 relevant code sections (semantic search):
  - auth/handlers.py:45-145 (score: 0.89)
  - middleware/auth.py:12-112 (score: 0.84)
  ...

建筑

索引过程

  1. 文件扫描(跳过构建工件)
  2. 具有SHA-256重复数据消除功能的内容存储
  3. 通过通用ctags进行符号提取
  4. 三角图倒排索引生成
  5. 使用zlib进行压缩

存储

~/.sigil_index/
├── repos.db           # SQLite: repos, documents, symbols
├── trigrams.rocksdb/  # RocksDB trigram inverted index (default, via rocksdict)
├── lancedb/       # LanceDB vector store (per-repo code_vectors tables + PQ indexes)
└── blobs/         # Compressed content

演出

  • 符号查找:O(log n)通过SQLite索引
  • 文本搜索:O(k),其中k=三元组\*每个三元组的文档
  • 典型查询延迟:10-100ms

安全

路径横向保护: 所有路径都经过验证,以防止逃逸存储库根

身份验证层: OAuth 2.0(主要)、本地绕过(localhost)、API密钥(回退)、IP白名单(可选)

保护: 源代码需要远程访问的身份验证,OAuth凭据以0600权限存储,令牌在1小时后过期并支持刷新,PKCE防止授权代码被拦截

ChatGPT兼容性:为了兼容ChatGPT MCP连接器,DNS重新绑定保护已禁用。这意味着:

  • \[否\]主机标头验证:已禁用(接受ngrok域)
  • \[否\]内容类型验证:已禁用(接受应用程序/八位字节流)
  • \[是\]OAuth 2.0身份验证:活动且必需
  • \[是\]承载令牌验证:活动
  • \[是\]令牌过期:强制

docs/SECURITY.md 获取详细的安全文档。

文档

设置指南

架构决策记录(ADR)

其他

贡献

欢迎投稿!请看 贡献.md 指南包括:

  • 贡献者许可协议(CLA) - 所有贡献者都需要
  • 开发商原产地证书(DCO)要求
  • 规范标准和测试要求
  • 拉取请求流程
  • 行为准则

许可

Sigil拥有双重许可:

  • 开源:可在AGPLv3下用于开源项目和满足源代码共享要求的私人使用。
  • 商业的:希望在内部运行Sigil而不开源自己的应用程序或需要赔偿和支持的组织需要商业许可证。

联系我 商业许可选项。

许可证 完整AGPLv3文本的文件。

许可常见问题

Q: 我可以在AGPLv3下在公司内部运行这个吗?

A: 是的,只要您对AGPLv3及其要求感到满意。如果你通过网络向用户公开服务器(比如将其作为内部服务运行),AGPLv3要求向这些用户提供源代码,包括你所做的任何修改。

Q: 我们有“无AGPL”政策。我们还能用Sigil吗?

A: 是的,通过商业许可证。电子邮件 davetmire85@gmail.com 讨论你的需求。

Q: 为什么我必须签署CLA才能捐款?

A: 《贡献者许可协议》保持了许可故事的整洁——开源社区的AGPLv3,需要商业许可的组织的商业许可——没有关于谁拥有什么的法律歧义。您的贡献在AGPLv3下仍然是开源的;CLA只是澄清了权利。

Q: 商业许可证包括哪些内容?

A: 商业许可证提供了在内部使用Sigil的自由,无需开源要求,能够保持修改的专有性,赔偿和支持选项,以及明确的企业合规法律地位。联系我了解详情和价格。

Q: 我可以将其用于我的个人项目吗?

A: 当然!AGPLv3非常适合个人项目、业余爱好者使用和小型团队。只有当您的组织要求与AGPL冲突时,您才需要商业许可证。

有关贡献的更多详细信息,请参阅 贡献.md.

致谢

  • 受GitHub Blackbird搜索引擎启发的三角图索引
  • 由通用Ctags支持的符号提取
  • 基于模型上下文协议(MCP)规范构建

支持

问题: 文档: docs/ 安全: docs/SECURITY.md

目录标签

目录标签

代码搜索代码索引Python开发工具本地部署语义导航AI辅助编程

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP