内容
# @penqwin/mcp
基于AST的模型上下文协议(MCP)服务器,为LLM代理(如Cursor、Claude Desktop和Antigravity)提供高效的代币代码库骨架。
与LLM发送完整的原始源代码文件不同,该服务器公开了文件和目录的结构“骨架”(导入、导出、签名和JSDoc注释)。这在代码库探索和导航期间减少了**80%至95%的代币上下文大小**。
---
## 功能与工具
服务器使用MCP协议注册了5种核心工具:
| 工具名称 | 描述 |
| :-------------------- | :---------------------------------------------------------------------------------------------------------------- |
| `get_repo_index` | 返回存储库的紧凑目录(所有文件+顶级导出名称)。~10–20个代币/文件。 |
| `get_folder_skeleton` | 检索与目录/文件夹前缀匹配的所有文件的结构骨架。 |
| `get_file_skeleton` | 检索单个文件的详细结构骨架(签名、类型、方法、参数和JSDocs)。 |
| `search_symbols` | 查询AST索引以查找导出特定类、函数、结构体或类型的存储库。 |
| `get_repo_stats` | 返回存储库的聚合统计信息,包括文件计数和语言细分。 |
---
## 配置
MCP服务器完全通过环境变量配置。
| 环境变量 | 描述 | 示例 |
| :------------------- | :------------------------------------------------ | :----------------------- |
| `PENQWIN_API_KEY` | 从数据库生成的机器间API密钥 | `ed_live_0e21cf14...` |
| `PENQWIN_ORG_ID` | 与API密钥关联的组织ID | `0db9f7b5-7206-...` |
| `PENQWIN_REPO` | 要定位的存储库所有者和名称 | `<org_name>/<repo_name>` |
| `PENQWIN_API_URL` | `penqwin`后端REST API网关URL | `http://app.penqwin.com` |
---
## IDE集成
您可以使用 **npx** (强烈推荐给最终用户,因为它不需要克隆/构建)或指向您的**本地构建**将此MCP服务器与您喜欢的IDE集成。
### 1. 直接集成(通过npm/npx)
这是用户最简单的设置。IDE将自动获取并运行软件包的最新版本。
#### Cursor
前往 **Cursor 设置** -> **功能** -> **MCP**,然后点击 **+ 添加新的MCP服务器**:
- **名称**:`penqwin`
- **类型**:`command`
- **命令**:`npx -y @penqwin/mcp`
- 在 **env** 设置下添加所需环境变量。
#### Antigravity / Gemini Code Assistant
将以下内容添加到您的 `mcp_config.json` 中:
```json
{
"mcpServers": {
"penqwin": {
"command": "npx",
"args": ["-y", "@penqwin/mcp"],
"env": {
"PENQWIN_API_KEY": "your_api_key",
"PENQWIN_ORG_ID": "your_org_id",
"PENQWIN_REPO": "your_repo",
"PENQWIN_API_URL": "https://app.penqwin.com"
}
}
}
}
```
#### Claude Desktop
将以下内容添加到您的 `claude_desktop_config.json` 中:
```json
{
"mcpServers": {
"penqwin": {
"command": "npx",
"args": ["-y", "@penqwin/mcp"],
"env": {
"PENQWIN_API_KEY": "your_api_key",
"PENQWIN_ORG_ID": "your_org_id",
"PENQWIN_REPO": "your_repo",
"PENQWIN_API_URL": "https://app.penqwin.com"
}
}
}
}
```
---
### 2. 本地源代码集成
如果您已在本地克隆了存储库并编译它:
#### Cursor
- **命令**:`node d:/Projects/EngDoc/eng-doc-mcp/dist/index.js` (对Windows路径使用正斜杠)
#### Antigravity / Claude Desktop
- **命令**:`node`
- **参数**:`["d:/Projects/EngDoc/eng-doc-mcp/dist/index.js"]`
---
了解更多:
- [Penqwin MCP](https://www.penqwin.com/mcp)
- [MCP 协议](https://modelcontextprotocol.io/docs/getting-started)
- [模型上下文协议 - 维基百科](https://en.wikipedia.org/wiki/Model_Context_Protocol)