AST-based Model Context Protocol (MCP) server for token-efficient codebase exploration.
An AST-based Model Context Protocol (MCP) server that provides token-efficient codebase skeletons to LLM agents (like Cursor, Claude Desktop, and Antigravity).
Instead of sending full raw source code files to the LLM, this server exposes structural "skeletons" (imports, exports, signatures, and JSDoc comments) of files and directories. This reduces token context sizes by 80% to 95% during codebase exploration and navigation.
This MCP server is well-structured with proper authentication and appropriate permissions for its stated purpose. It requires API key validation via environment variables, uses standard MCP protocol patterns, and makes authenticated HTTP calls to a backend service. No malicious patterns, credential leaks, or dangerous operations detected. Minor code quality observations exist but do not materially impact security. Supply chain analysis found 1 known vulnerability in dependencies. Package verification found 1 issue.
5 files analyzed · 6 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: PENQWIN_API_KEY
Environment variable: PENQWIN_ORG_ID
Environment variable: PENQWIN_REPO
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Once installed, try these example prompts and explore these capabilities:
From the project's GitHub README.
An AST-based Model Context Protocol (MCP) server that provides token-efficient codebase skeletons to LLM agents (like Cursor, Claude Desktop, and Antigravity).
Instead of sending full raw source code files to the LLM, this server exposes structural "skeletons" (imports, exports, signatures, and JSDoc comments) of files and directories. This reduces token context sizes by 80% to 95% during codebase exploration and navigation.
The server registers 5 core tools with the MCP protocol:
| Tool Name | Description |
|---|---|
get_repo_index | Returns a compact Table of Contents of the repository (all files + top-level exported names). ~10–20 tokens/file. |
get_folder_skeleton | Retrieves structural skeletons for all files matching a directory/folder prefix. |
get_file_skeleton | Retrieves the detailed structural skeleton (signatures, types, methods, parameters, and JSDocs) of a single file. |
search_symbols | Queries the AST index to find files that export a specific class, function, struct, or type. |
get_repo_stats | Returns aggregate statistics of the repository, including file counts and language breakdown. |
eng-doc backend server (running locally or in production)eng-doc platformThe MCP server is configured entirely via environment variables.
| Environment Variable | Description | Example |
|---|---|---|
PENQWIN_API_KEY | Machine-to-machine API key generated from the DB | ed_live_0e21cf14... |
PENQWIN_ORG_ID | The organization ID associated with the API key | 0db9f7b5-7206-4f4e-a61b-509d2a0b0a09 |
PENQWIN_REPO | The repository owner and name to target | sarinmsari/daily-astrology |
PENQWIN_API_URL | The REST API gateway URL of the eng-doc backend | http://localhost:3000 (or production URL) |
npm install
The project uses tsup to bundle the TypeScript code into a single executable bundle:
npm run build
This generates dist/index.js.
To test the server on the command line:
# PowerShell
$env:PENQWIN_API_KEY="your_key"
$env:PENQWIN_ORG_ID="your_org"
$env:PENQWIN_REPO="your_repo"
$env:PENQWIN_API_URL="http://localhost:3000"
node dist/index.js
You can integrate this MCP server with your favorite IDE using either npx (highly recommended for end-users, as it doesn't require cloning/building) or by pointing to your local build.
This is the easiest setup for users. The IDE will automatically fetch and run the latest version of the package.
Go to Cursor Settings -> Features -> MCP, and click + Add New MCP Server:
penqwincommandnpx -y @penqwin/mcpAdd this to your 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"
}
}
}
}
Add this to your 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"
}
}
}
}
If you have cloned the repository locally and compiled it:
node d:/Projects/EngDoc/eng-doc-mcp/dist/index.js (Use forward slashes for Windows paths)node["d:/Projects/EngDoc/eng-doc-mcp/dist/index.js"]Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.