analyze-codebase-for-mcp
О программе
Этот навык анализирует код для выявления функций, API и источников данных, которые могут быть представлены в качестве инструментов Model Context Protocol (MCP), генерируя структурированный документ со спецификацией. Он используется при планировании MCP-сервера, аудите кодовой базы на предмет поверхностей инструментов, доступных для ИИ, или сравнении существующих возможностей с текущим представлением в MCP. Анализ фокусируется на функциях, REST-эндпоинтах, CLI-командах и точках доступа к данным, подходящих для преобразования в инструменты.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/analyze-codebase-for-mcpСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
Analyze Codebase for MCP
Scan codebase → fns, REST endpoints, CLI cmds, data access candidates → MCP tool exposure → structured tool spec doc.
Use When
- Plan MCP server existing project → know what to expose
- Audit codebase pre-AI-tool-surface wrap
- Compare codebase capability vs MCP exposed
- Generate tool spec → hand to
scaffold-mcp-server - Evaluate 3rd-party lib worth wrapping
In
- Required: Path to codebase root
- Required: Target lang(s) (TS, Python, R, Go)
- Optional: Existing MCP server code → gap analysis
- Optional: Domain focus ("data analysis", "file ops", "API integration")
- Optional: Max tools to recommend (default: 20)
Do
Step 1: Scan Structure
1.1. Glob → dir tree, src dirs:
src/**/*.{ts,js,py,R,go,rs}→ src files**/routes/**,**/api/**,**/controllers/**→ endpoints**/cli/**,**/commands/**→ CLI entries**/package.json,**/setup.py,**/DESCRIPTION→ dep metadata
1.2. Categorize by role:
- Entry: main files, route handlers, CLI cmds
- Core logic: business fns, algos, data transformers
- Data access: DB queries, file I/O, API clients
- Utilities: helpers, formatters, validators
1.3. Count files, LOC, exported symbols → gauge size.
→ Categorized inventory w/ role annotations.
If err: Too large (>10K files) → narrow via domain focus. No src found → verify root path + lang params.
Step 2: Identify Fns + Endpoints
2.1. Grep exported fns + public APIs:
- TS/JS:
export (async )?function,export default,module.exports - Python: fns no
_prefix,@app.route,@router - R: NAMESPACE or
#' @exportroxygen - Go: capitalized fn names (exported by convention)
2.2. Per candidate extract:
- Name: fn/endpoint
- Signature: params w/ types + defaults
- Return type
- Docs: docstrings, JSDoc, roxygen, godoc
- Location: file path + line
2.3. REST APIs, also extract:
- HTTP method + route pattern
- Req body schema
- Res shape
- Auth reqs
2.4. Sort by potential utility (public, documented, well-typed first).
→ 20-100 candidates w/ extracted metadata.
If err: Few candidates → broaden → include internal that could be public. Sparse docs → flag as risk.
Step 3: Evaluate MCP Suitability
3.1. Per candidate → MCP tool criteria:
- In contract clarity: params well-typed + documented? JSON Schema describable?
- Out predictability: structured (JSON-serializable)? Consistent shape?
- Side effects: modifies state (files, DB, external)? Must be labeled.
- Idempotency: safe to retry? Non-idempotent → explicit warn.
- Exec time: completes <30s? Long-running → async patterns.
- Err handling: structured errs or silent fail?
3.2. Score 1-5:
- 5: Pure fn, typed I/O, documented, fast, no side effects
- 4: Well-typed, documented, minor side effects (logging)
- 3: Reasonable I/O, needs wrapping (raw objects)
- 2: Significant side effects or unclear, substantial adaptation
- 1: Not suitable no major refactor
3.3. Filter ≥3. Flag score-2 → "future candidates" needing refactor.
→ Scored + filtered list w/ suitability rationale.
If err: Most <3 → codebase needs refactor pre-MCP. Doc gaps → recommend (add types, extract pure fns, wrap side effects).
Step 4: Design Tool Specs
4.1. Per selected (≥3) draft spec:
- name: tool_name
description: >
One-line description of what the tool does.
source_function: module.function_name
source_file: src/path/to/file.ts:42
parameters:
param_name:
type: string | number | boolean | object | array
description: What this parameter controls
required: true | false
default: value_if_optional
returns:
type: string | object | array
description: What the tool returns
side_effects:
- description of any side effect
estimated_latency: fast | medium | slow
suitability_score: 5
4.2. Group logical categories ("Data Queries", "File Ops", "Analysis", "Config").
4.3. Identify deps between tools ("list_datasets" before "query_dataset").
4.4. Need wrappers?
- Simplify complex param objects → flat in
- Convert raw returns → structured text/JSON
- Safety guards (read-only wrappers for DB fns)
→ Complete YAML spec w/ categories, deps, wrapper notes.
If err: Ambiguous → Step 2 → more src detail. Param types uninferable → flag manual review.
Step 5: Generate Tool Spec Doc
5.1. Final doc sections:
- Summary: Codebase overview, lang, size, date
- Recommended Tools: Full specs from Step 4, grouped
- Future Candidates: Score-2 + refactor recs
- Excluded: Score-1 + rationale
- Dependencies: Tool dep graph
- Impl Notes: Wrappers, auth, transport
5.2. Save mcp-tool-spec.yml (machine) + mcp-tool-spec.md (human).
5.3. Existing MCP server provided → gap analysis:
- In spec, not impl
- Impl, not in spec (stale)
- Spec drift (impl diverges)
→ Complete doc → consumable by scaffold-mcp-server.
If err: >200 tools → split modules w/ cross-refs. No candidates → "readiness assessment" doc w/ refactor recs.
Check
- All src files scanned
- Candidates have names, signatures, returns
- Each candidate scored + rationale
- Tool specs complete param schemas w/ types
- Side effects explicit per tool
- Doc valid YAML (parseable)
- Tool names follow MCP (snake_case, unique)
- Categories + deps coherent
- Gap analysis if existing MCP provided
- Future candidates list refactor steps
Traps
- Too many tools: AI works best 10-30 focused. Breadth > depth. Resist every public fn.
- Ignore side effects: "Just reads" + logs/cache = still side effects. Audit
Grepfile writes, network, DB. - Assume type safety: Dynamic langs (Py, R, JS) may lack type annotations. Infer from usage, flag uncertainty.
- Missing auth ctx: Fns working in authed web req may fail via MCP no session. Check implicit session cookies, JWT, env creds.
- Over-engineer wrappers: 50-line wrapper → not good candidate. Prefer natural mapping.
- Neglect err paths: MCP must return structured errs. Untyped exceptions → err-handling wrappers.
- Conflate internal + external APIs: Internal helpers poor candidates. Focus external-consumption or boundary APIs.
- Skip gap analysis: Existing MCP provided → always compare. No gap analysis → duplicate work or stale tools.
→
scaffold-mcp-server— use out spec → working MCPbuild-custom-mcp-server— manual impl refconfigure-mcp-server— connect to Claude Code/Desktoptroubleshoot-mcp-connection— debug after deployreview-software-architecture— arch review for tool surfacesecurity-audit-codebase— audit pre-external exposure
GitHub репозиторий
Frequently asked questions
What is the analyze-codebase-for-mcp skill?
analyze-codebase-for-mcp is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform analyze-codebase-for-mcp-related tasks without extra prompting.
How do I install analyze-codebase-for-mcp?
Use the install commands on this page: add analyze-codebase-for-mcp to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does analyze-codebase-for-mcp belong to?
analyze-codebase-for-mcp is in the Meta category, tagged word, ai, api, mcp, design and data.
Is analyze-codebase-for-mcp free to use?
Yes. analyze-codebase-for-mcp is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Похожие навыки
Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
