mcpField
P
Penqwin

Penqwin

本地服务
github.com/sarinmsariAI 与智能体316 周前更新

关于 Penqwin

Penqwin 是面向编码 Agent 的 AST MCP 服务,帮助其探索代码仓库而无需载入完整源文件。它提供包含代码结构和文档的精简骨架,以及仓库和符号搜索工具。

主要功能

  1. 01含导出名称的仓库索引
  2. 02文件夹与文件代码骨架
  3. 03基于 AST 的符号搜索
  4. 04仓库统计与语言分布

适用场景

  1. 01编辑前了解仓库结构
  2. 02不读取完整源码而检查签名
  3. 03定位导出指定符号的文件

MCP 相关

注册五种 MCP 工具,用于仓库索引、文件与文件夹骨架、符号搜索和仓库统计。它通过配置的环境变量连接 Penqwin 后端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"penqwin": {
"command": "npx",
"args": [
"-y",
"@penqwin/mcp"
],
"env": {
"PENQWIN_API_KEY": "<PENQWIN_API_KEY>",
"PENQWIN_ORG_ID": "<PENQWIN_ORG_ID>",
"PENQWIN_REPO": "<PENQWIN_REPO>",
"PENQWIN_API_URL": "<PENQWIN_API_URL>"
}
}
}
}
启动命令npx -y @penqwin/mcp
需要配置的环境变量
PENQWIN_API_KEY密钥
PENQWIN_ORG_ID
PENQWIN_REPO
PENQWIN_API_URL

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@penqwin/mcp

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
include_statsboolean否若为 true,同时返回语言分布和文件总数。

详细介绍

@penqwin/mcp

一个基于 AST 的模型上下文协议(MCP)服务,为 LLM Agent(如 Cursor、Claude Desktop 和 Antigravity)提供节省令牌的代码库骨架。

该服务不会将完整的原始源代码文件发送给大模型,而是提供文件和目录的结构「骨架」(导入、导出、签名和 JSDoc 注释)。在探索和浏览代码库时,这可将上下文令牌用量减少 80% 到 95%。


功能与工具

该服务通过 MCP 协议注册 5 个核心工具:

工具名称描述
get_repo_index返回精简的代码库目录(所有文件 + 顶层导出名称)。约 10–20 个令牌/文件。
get_folder_skeleton获取与目录/文件夹前缀匹配的所有文件的结构骨架。
get_file_skeleton获取单个文件的详细结构骨架(签名、类型、方法、参数和 JSDoc)。
search_symbols查询 AST 索引,查找导出特定类、函数、结构体或类型的文件。
get_repo_stats返回代码库的汇总统计信息,包括文件数量和语言分布。

配置

MCP 服务完全通过环境变量配置。

环境变量描述示例
PENQWIN_API_KEY从数据库生成的机器间 API 密钥ed_live_0e21cf14...
PENQWIN_ORG_ID与 API 密钥关联的组织 ID0db9f7b5-7206-...
PENQWIN_REPO目标代码库的所有者和名称<org_name>/<repo_name>
PENQWIN_API_URLpenqwin 后端的 REST API 网关 URLhttp://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:

{
  "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:

{
  "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"]

了解更多:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。