apidocs-mcp-server
Provide a server implementation for the Model Context Protocol (MCP) to enable dynamic integration of LLMs with external data and tools. Facilitate standardized access to resources, tools, and prompts for enhanced LLM capabilities. Simplify the development of MCP-compliant servers for various applications.
Ask AI about apidocs-mcp-server
Powered by Claude Β· Grounded in docs
I know everything about apidocs-mcp-server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
API Docs MCP Server
API λ¬Έμλ₯Ό λΆμνμ¬ νλ‘ νΈμλ ꡬν λ°©λ²μ μΆμ²ν΄μ£Όλ MCP (Model Context Protocol) μλ²μ λλ€.
π μ£Όμ κΈ°λ₯
- API λ¬Έμ μλ λΆμ: Swagger/OpenAPI JSON λλ HTML ννμ API λ¬Έμλ₯Ό μλμΌλ‘ λΆμ
- νλ‘ νΈμλ μΆμ²: λΆμλ APIλ₯Ό κΈ°λ°μΌλ‘ νλ‘ νΈμλ νμ΄μ§ ꡬν λ°©λ²μ μΆμ²
- μΈμ¦ μ§μ: μΏ ν€ κΈ°λ° μΈμ¦μ΄ νμν API λ¬Έμλ λΆμ κ°λ₯
- API μν νμΈ: μλν¬μΈνΈμ μνμ μλ΅ μκ°μ νμΈ
- μ½λ μμ μμ±: JavaScript/TypeScript, Python μ½λ μμ μλ μμ±
- μλν¬μΈνΈ κ²μ: ν€μλ κΈ°λ° API μλν¬μΈνΈ κ²μ
- λ¬Έμ λ΄λ³΄λ΄κΈ°: JSON, Markdown νμμΌλ‘ API λ¬Έμ λ΄λ³΄λ΄κΈ°
- FastMCP κΈ°λ°: μ΅μ FastMCP κ·κ²©μ μ¬μ©νμ¬ λΉ λ₯΄κ³ ν¨μ¨μ μΈ μλ² κ΅¬ν
π μ§μνλ API λ¬Έμ νμ
- Swagger/OpenAPI JSON:
/swagger.json,/api-docs,/openapi.jsonλ± - HTML λ¬Έμ: Swagger UI λ±μ΄ ν¬ν¨λ HTML νμ΄μ§
- μΈμ¦μ΄ νμν λ¬Έμ: μΏ ν€ κΈ°λ° μΈμ¦ μ§μ
π οΈ μ€μΉ λ° μ€ν
λ‘컬 κ°λ° νκ²½
-
μμ‘΄μ± μ€μΉ
pip install -e . -
μλ² μ€ν
mcp run api_docs_mcp_server:server
Dockerλ₯Ό μ¬μ©ν μ€ν
-
μ΄λ―Έμ§ λΉλ
docker build -t api-docs-mcp-server . -
컨ν μ΄λ μ€ν
docker run -p 8080:8080 api-docs-mcp-server
Smithery λ°°ν¬
μ΄ νλ‘μ νΈλ Smithery νλ«νΌμ λ°°ν¬ν μ μλλ‘ κ΅¬μ±λμ΄ μμ΅λλ€:
-
Smithery CLI μ€μΉ
npm install -g @smithery/cli -
λ°°ν¬
smithery deploy
π§ μ¬μ© λ°©λ²
MCP ν΄λΌμ΄μΈνΈμμ μ¬μ©
# MCP ν΄λΌμ΄μΈνΈ μμ
from mcp.client import ClientSession
async with ClientSession("http://localhost:8080") as session:
# API λ¬Έμ λΆμ
result = await session.call_tool(
"analyze_api_docs",
{
"url": "https://api.example.com/swagger.json",
"cookies": {"_oauth2_proxy": "your-auth-token"} # μ νμ¬ν
}
)
print(result.content)
# API μν νμΈ
health_result = await session.call_tool(
"health_check_api",
{
"url": "https://api.example.com/swagger.json",
"max_endpoints": 5
}
)
print(health_result.content)
# μ½λ μμ μμ±
code_result = await session.call_tool(
"generate_code_examples",
{
"url": "https://api.example.com/swagger.json",
"endpoint_path": "/api/users"
}
)
print(code_result.content)
π οΈ μ¬μ© κ°λ₯ν λꡬλ€
1. analyze_api_docs
API λ¬Έμλ₯Ό λΆμνμ¬ νλ‘ νΈμλ νμ΄μ§ ꡬν λ°©λ²μ μΆμ²ν©λλ€.
νλΌλ―Έν°:
url(νμ): λΆμν API λ¬Έμμ URLcookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리
2. get_api_endpoints
API λ¬Έμμμ λͺ¨λ μλν¬μΈνΈ λͺ©λ‘μ κ°μ Έμ΅λλ€.
νλΌλ―Έν°:
url(νμ): λΆμν API λ¬Έμμ URLcookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리
3. health_check_api
API μλν¬μΈνΈλ€μ μνλ₯Ό νμΈν©λλ€.
νλΌλ―Έν°:
url(νμ): API λ¬Έμμ URLcookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리max_endpoints(μ ν): ν μ€νΈν μ΅λ μλν¬μΈνΈ μ (κΈ°λ³Έκ°: 10)
4. generate_code_examples
νΉμ API μλν¬μΈνΈμ λν μ½λ μμλ₯Ό μμ±ν©λλ€.
νλΌλ―Έν°:
url(νμ): API λ¬Έμμ URLendpoint_path(νμ): μ½λ μμλ₯Ό μμ±ν μλν¬μΈνΈ κ²½λ‘cookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리
5. search_endpoints
API μλν¬μΈνΈμμ νΉμ ν€μλλ₯Ό κ²μν©λλ€.
νλΌλ―Έν°:
url(νμ): API λ¬Έμμ URLsearch_term(νμ): κ²μν ν€μλcookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리
6. get_api_info
API λ¬Έμμ κΈ°λ³Έ μ 보λ₯Ό κ°μ Έμ΅λλ€.
νλΌλ―Έν°:
url(νμ): API λ¬Έμμ URLcookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리
7. export_api_docs
API λ¬Έμλ₯Ό λ€μν νμμΌλ‘ λ΄λ³΄λ λλ€.
νλΌλ―Έν°:
url(νμ): API λ¬Έμμ URLformat(μ ν): λ΄λ³΄λΌ νμ (json, markdown) (κΈ°λ³Έκ°: json)cookies(μ ν): μΈμ¦μ νμν μΏ ν€ λμ λ리
π λΆμ κ²°κ³Ό μμ
β
**API λ¬Έμ λΆμ μλ£: Example API (1.0.0)**
μ΄ 25κ°μ API μλν¬μΈνΈλ₯Ό λ°κ²¬νμ΅λλ€.
--- π νλ‘ νΈμλ νμ΄μ§ ꡬν μΆμ² ---
### π‘ μ¬μ©μ κ΄λ¦¬ νμ΄μ§
_μ¬μ©μ κ΄λ¦¬ κΈ°λ₯ ꡬνμ μν APIλ€_
- `GET` /api/users (μ¬μ©μ λͺ©λ‘ μ‘°ν)
- `POST` /api/users (μ μ¬μ©μ μμ±)
- `PUT` /api/users/{id} (μ¬μ©μ μ 보 μμ )
- `DELETE` /api/users/{id} (μ¬μ©μ μμ )
### π‘ μΈμ¦/λ‘κ·ΈμΈ νμ΄μ§
_μΈμ¦/λ‘κ·ΈμΈ κΈ°λ₯ ꡬνμ μν APIλ€_
- `POST` /api/auth/login (λ‘κ·ΈμΈ)
- `POST` /api/auth/logout (λ‘κ·Έμμ)
- `GET` /api/auth/me (νμ¬ μ¬μ©μ μ 보)
### π‘ κ²°μ /κ²°μ νμ΄μ§
_κ²°μ /κ²°μ κΈ°λ₯ ꡬνμ μν APIλ€_
- `POST` /api/payments (κ²°μ μμ±)
- `GET` /api/payments/{id} (κ²°μ μ 보 μ‘°ν)
- `PUT` /api/payments/{id}/cancel (κ²°μ μ·¨μ)
ποΈ νλ‘μ νΈ κ΅¬μ‘°
apidocs-mcp-server/
βββ src/
β βββ api_docs_mcp_server/
β βββ __init__.py
βββ server.py # λ©μΈ μλ² νμΌ
βββ pyproject.toml # νλ‘μ νΈ μ€μ
βββ Dockerfile # Docker μ€μ
βββ smithery.yaml # Smithery λ°°ν¬ μ€μ
βββ README.md # μ΄ νμΌ
π μ£Όμ ν΄λμ€ λ° κΈ°λ₯
APIDocsAnalyzer
fetch_swagger_docs(): Swagger/OpenAPI JSON λ¬Έμ κ°μ Έμ€κΈ°fetch_html_docs(): HTML ννμ API λ¬Έμ κ°μ Έμ€κΈ°analyze_swagger_docs(): API λ¬Έμ λΆμ λ° κ΅¬μ‘°ν_generate_frontend_recommendations(): νλ‘ νΈμλ μΆμ² μμ±health_check_endpoint(): κ°λ³ μλν¬μΈνΈ μν νμΈgenerate_code_examples(): μ½λ μμ μμ±
λΆμ κ²°κ³Ό λͺ¨λΈ
APIEndpoint: κ°λ³ API μλν¬μΈνΈ μ 보FrontendRecommendation: νμ΄μ§λ³ API μΆμ²AnalysisResult: μ 체 λΆμ κ²°κ³ΌAPIHealthCheck: API μν νμΈ κ²°κ³ΌCodeExample: μ½λ μμ λͺ¨λΈ
π― νλ‘ νΈμλ μΆμ² λ‘μ§
μλ²λ λ€μκ³Ό κ°μ κΈ°μ€μΌλ‘ APIλ₯Ό κ·Έλ£Ήννμ¬ μΆμ²ν©λλ€:
- μ¬μ©μ κ΄λ¦¬:
user,member,customerν€μλ ν¬ν¨ - μΈμ¦/λ‘κ·ΈμΈ:
auth,login,token,oauthν€μλ ν¬ν¨ - κ²°μ /κ²°μ :
payment,pay,billing,chargeν€μλ ν¬ν¨ - νμΌ μ
λ‘λ:
upload,file,image,mediaν€μλ ν¬ν¨ - κ²μ:
search,find,queryν€μλ ν¬ν¨ - ν΅κ³/λΆμ:
stats,analytics,report,metricν€μλ ν¬ν¨ - μλ¦Ό/λ©μμ§:
notification,message,alert,pushν€μλ ν¬ν¨ - μ€μ /κ΄λ¦¬:
config,setting,admin,managementν€μλ ν¬ν¨ - λ°μ΄ν° μ‘°ν: GET λ©μλ
- λ°μ΄ν° μμ±/μμ : POST, PUT, PATCH λ©μλ
π§ κ°λ° νκ²½ μ€μ
νμ μꡬμ¬ν
- Python 3.10 μ΄μ
- pip
κ°λ° μμ‘΄μ± μ€μΉ
# κ°μνκ²½ μμ± (κΆμ₯)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# μμ‘΄μ± μ€μΉ
pip install -e .
ν μ€νΈ
# μλ² μ€ν ν
μ€νΈ
mcp run api_docs_mcp_server:server --host 0.0.0.0 --port 8080
π λΌμ΄μ μ€
MIT License
π€ κΈ°μ¬νκΈ°
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π μ§μ
λ¬Έμ κ° λ°μνκ±°λ μ§λ¬Έμ΄ μμΌμλ©΄ μ΄μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ°Έκ³ : μ΄ μλ²λ FastMCP κ·κ²©μ μ¬μ©νμ¬ κ΅¬νλμμΌλ©°, Smithery νλ«νΌκ³Ό νΈνλ©λλ€.
