{"id":28918307,"url":"https://github.com/joonheeu/fastapi-mcp-template","last_synced_at":"2025-10-17T23:05:45.328Z","repository":{"id":300318599,"uuid":"1005864766","full_name":"joonheeu/fastapi-mcp-template","owner":"joonheeu","description":"FastAPI + MCP 프로덕션 템플릿 - 현대적인 API 서버와 LLM 통합을 위한 완전한 개발 템플릿","archived":false,"fork":false,"pushed_at":"2025-06-21T01:58:14.000Z","size":156,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T02:35:33.418Z","etag":null,"topics":["ai","api","backend","boilerplate","fastapi","fastmcp","llm","mcp","python","scalar","server","starter","template"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joonheeu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T01:11:06.000Z","updated_at":"2025-06-21T01:58:18.000Z","dependencies_parsed_at":"2025-06-21T02:35:36.533Z","dependency_job_id":"67e824ad-08ba-4385-bd81-973cefbf99b9","html_url":"https://github.com/joonheeu/fastapi-mcp-template","commit_stats":null,"previous_names":["joonheeu/fastapi-mcp-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joonheeu/fastapi-mcp-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonheeu%2Ffastapi-mcp-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonheeu%2Ffastapi-mcp-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonheeu%2Ffastapi-mcp-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonheeu%2Ffastapi-mcp-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joonheeu","download_url":"https://codeload.github.com/joonheeu/fastapi-mcp-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonheeu%2Ffastapi-mcp-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261224290,"owners_count":23126930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","api","backend","boilerplate","fastapi","fastmcp","llm","mcp","python","scalar","server","starter","template"],"created_at":"2025-06-22T02:02:18.591Z","updated_at":"2025-10-17T23:05:45.322Z","avatar_url":"https://github.com/joonheeu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastAPI + MCP Template\n\n\u003e **현대적인 API 서버와 MCP(Model Context Protocol) 통합 템플릿**\n\nFastAPI와 MCP를 활용한 프로덕션 수준의 API 서버 템플릿입니다. LLM 통합, 구조화된 로깅, 포괄적인 테스트, 그리고 최고의 개발자 경험을 제공합니다.\n\n[![Python](https://img.shields.io/badge/Python-3.11+-blue?style=flat-square\u0026logo=python)](https://python.org)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-green?style=flat-square\u0026logo=fastapi)](https://fastapi.tiangolo.com)\n[![MCP](https://img.shields.io/badge/MCP-FastMCP-purple?style=flat-square)](https://github.com/jlowin/fastmcp)\n[![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](https://opensource.org/licenses/MIT)\n\n## ✨ 주요 특징\n\n### 🚀 **프로덕션 수준의 API 서버**\n\n- **현대적인 FastAPI**: 자동 API 문서화, 타입 안전성, 고성능\n- **Scalar 문서화**: 아름답고 대화형 API 문서\n- **구조화된 로깅**: 색상 지원, 파일 로테이션, 요청 추적\n- **포괄적인 예외 처리**: 타입별 커스텀 예외 및 상세한 오류 정보\n- **Dependency Injection**: FastAPI DI 패턴으로 깔끔한 코드 구조\n\n### 🤖 **MCP 서버 통합**\n\n- **FastMCP 구현**: 최신 Model Context Protocol 표준\n- **SSE 통신**: 실시간 Server-Sent Events 연결\n- **도구 및 리소스**: LLM이 활용할 수 있는 다양한 도구\n- **확장 가능**: 새로운 MCP 기능 쉽게 추가\n\n### 🛡️ **보안 및 설정**\n\n- **환경별 설정**: 개발, 테스트, 프로덕션 환경 지원\n- **보안 기본값**: 자동 시크릿 키 생성, CORS 보안 설정\n- **환경변수 관리**: .env 파일 지원 및 완전한 설정 검증\n\n### 🧪 **완전한 테스트 커버리지**\n\n- **단위 테스트**: MCP 도구 및 API 엔드포인트\n- **통합 테스트**: 전체 시스템 엔드투엔드 테스트\n- **동시성 테스트**: 멀티스레드 및 성능 테스트\n\n## 📁 프로젝트 구조\n\n```\ncoupang-partners-api/\n├── 🏗️ 소스 코드\n│   ├── src/\n│   │   ├── core/              # 🔧 핵심 모듈\n│   │   │   ├── config.py      # ⚙️ 환경별 설정 관리\n│   │   │   ├── logging.py     # 📝 구조화된 로깅 시스템\n│   │   │   ├── exceptions.py  # ⚠️ 커스텀 예외 처리\n│   │   │   ├── dependencies.py # 🔗 의존성 주입 패턴\n│   │   │   ├── database.py    # 💾 데이터베이스 추상화\n│   │   │   └── models.py      # 📋 Pydantic 모델\n│   │   ├── api/               # 🌐 FastAPI 애플리케이션\n│   │   │   ├── app.py         # 🚀 메인 애플리케이션\n│   │   │   └── routers/       # 🛣️ API 라우터\n│   │   ├── mcp_server/        # 🤖 MCP 서버\n│   │   │   ├── server.py      # 🖥️ MCP 서버 구현\n│   │   │   ├── tools.py       # 🔨 MCP 도구\n│   │   │   └── resources.py   # 📦 MCP 리소스\n│   │   └── templates/         # 📄 템플릿 파일\n│   ├── 🧪 테스트\n│   │   ├── tests/\n│   │   │   ├── test_api.py    # 🌐 API 테스트\n│   │   │   ├── test_mcp.py    # 🤖 MCP 테스트\n│   │   │   └── test_integration.py # 🔄 통합 테스트\n│   ├── 📚 예시 및 문서\n│   │   ├── examples/          # 💡 사용 예시\n│   │   └── docs/              # 📖 문서\n│   └── 🐳 배포\n│       ├── Dockerfile         # 🐳 Docker 이미지\n│       ├── docker-compose.yml # 🐙 Docker Compose\n│       └── .dockerignore      # 🚫 Docker 제외 파일\n├── ⚡ 실행 스크립트\n│   ├── run_server.py          # 🚀 통합 서버 실행\n│   ├── run_api_server.py      # 🌐 API 서버 실행  \n│   ├── run_mcp_server.py      # 🤖 MCP 서버 실행\n│   └── run_docker.py          # 🐳 Docker 실행 도구\n├── 🔧 설정 파일\n│   ├── .env.example           # 🔑 환경변수 예시\n│   ├── .gitignore             # 🚫 Git 제외 파일\n│   ├── pyproject.toml         # 📦 프로젝트 설정\n│   └── uv.lock               # 🔒 의존성 락 파일\n└── 📋 메타데이터\n    ├── README.md              # 📖 이 파일\n    └── setup_template.py      # ⚙️ 템플릿 설정 도구\n```\n\n## 🚀 빠른 시작\n\n### 1️⃣ **환경 설정**\n\n#### 의존성 설치\n\n```bash\n# UV 패키지 매니저 사용 (권장)\nuv sync\n\n# 또는 pip 사용\npip install -r requirements.txt\n\n# 개발 환경 (테스트, 린팅 도구 포함)\npip install -r requirements-dev.txt\n```\n\n#### 환경변수 설정\n\n```bash\n# 환경변수 파일 복사 및 수정\ncp .env.example .env\n```\n\n**`.env` 파일 주요 설정:**\n\n```bash\n# 애플리케이션 설정\nAPP_NAME=\"My Awesome API\"\nENVIRONMENT=\"development\"  # development, production, test\n\n# 보안 설정\nSECRET_KEY=\"your-secure-random-key-here\"\n\n# CORS 설정 (개발용)\nCORS_ORIGINS=\"http://localhost:3000,http://localhost:8080\"\n\n# 로깅 설정\nLOG_LEVEL=\"INFO\"\nLOG_FILE=\"logs/app.log\"\n```\n\n### 2️⃣ **서버 실행**\n\n#### 🎯 **통합 실행 (권장)**\n\n```bash\n# API + MCP 서버 동시 실행\npython run_server.py\n```\n\n#### 🔄 **개별 실행**\n\n```bash\n# Terminal 1: API 서버 (포트 8000)\npython run_api_server.py\n\n# Terminal 2: MCP 서버 (포트 8001)\npython run_mcp_server.py\n```\n\n#### 🐳 **Docker 실행**\n\n```bash\n# 프로덕션 모드\ndocker-compose up --build\n\n# 개발 모드 (볼륨 마운트)\ndocker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build\n```\n\n### 3️⃣ **접속 확인**\n\n| 서비스 | URL | 설명 |\n|--------|-----|------|\n| 🌐 **API 서버** | \u003chttp://localhost:8000\u003e | 메인 API 엔드포인트 |\n| 📚 **API 문서** | \u003chttp://localhost:8000/docs\u003e | 대화형 API 문서 (Scalar) |\n| ❤️ **헬스체크** | \u003chttp://localhost:8000/health\u003e | 서버 상태 확인 |\n| 🤖 **MCP 서버** | \u003chttp://localhost:8001/sse\u003e | MCP SSE 엔드포인트 |\n\n## 🛠️ 템플릿 커스터마이징\n\n### 💡 **빠른 설정**\n\n```bash\n# 대화형 CLI로 프로젝트 정보 설정\npython setup_template.py --customize\n```\n\n### 🆕 **새 프로젝트 생성**\n\n```bash\n# 새 프로젝트 생성\npython setup_template.py --new my-awesome-project\n\n# 특정 디렉토리에 생성\npython setup_template.py --new my-project --target-dir /path/to/projects\n```\n\n### 🔄 **백업에서 복원**\n\n```bash\n# 원래 템플릿 상태로 복원\npython setup_template.py --restore\n```\n\n## 📚 API 문서\n\n### 🏥 **헬스 체크**\n\n```http\nGET /health              # 종합 헬스 체크\nGET /health/simple       # 간단한 상태 확인\nGET /health/detailed     # 상세 시스템 정보\n```\n\n### 📦 **아이템 관리**\n\n```http\nGET    /api/v1/items                 # 아이템 목록 (페이지네이션)\nPOST   /api/v1/items                 # 아이템 생성\nGET    /api/v1/items/{id}            # 특정 아이템 조회\nPUT    /api/v1/items/{id}            # 아이템 수정\nDELETE /api/v1/items/{id}            # 아이템 삭제\nGET    /api/v1/items/search/by-name  # 이름으로 검색\nGET    /api/v1/items/stats/summary   # 통계 정보\n```\n\n### 👥 **사용자 관리**\n\n```http\nGET    /api/v1/users     # 사용자 목록\nPOST   /api/v1/users     # 사용자 생성\nGET    /api/v1/users/{id}  # 특정 사용자 조회\nPUT    /api/v1/users/{id}  # 사용자 수정\nDELETE /api/v1/users/{id}  # 사용자 삭제\n```\n\n### 📖 **API 사용 예시**\n\n#### 아이템 생성\n\n```bash\ncurl -X POST \"http://localhost:8000/api/v1/items\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"노트북\",\n    \"description\": \"고성능 개발용 노트북\",\n    \"price\": 1200000,\n    \"category\": \"electronics\",\n    \"is_available\": true,\n    \"tags\": [\"laptop\", \"development\"]\n  }'\n```\n\n#### 아이템 검색\n\n```bash\ncurl \"http://localhost:8000/api/v1/items?category=electronics\u0026available_only=true\u0026limit=10\"\n```\n\n## 🤖 MCP 서버 기능\n\n### 🔨 **사용 가능한 도구 (Tools)**\n\n| 도구명 | 설명 | 매개변수 |\n|--------|------|----------|\n| `get_items` | 아이템 목록 조회 | `skip`, `limit`, `category`, `available_only` |\n| `get_item_by_id` | ID로 아이템 조회 | `item_id` |\n| `create_item` | 새 아이템 생성 | `name`, `price`, `description`, etc. |\n| `update_item` | 아이템 수정 | `item_id`, 수정할 필드들 |\n| `delete_item` | 아이템 삭제 | `item_id` |\n| `search_items` | 아이템 검색 | `query`, `search_field` |\n| `get_database_stats` | 데이터베이스 통계 | 없음 |\n| `export_database` | 데이터 내보내기 | 없음 |\n\n### 📦 **사용 가능한 리소스 (Resources)**\n\n| 리소스 URI | 설명 |\n|------------|------|\n| `database://schema` | 데이터베이스 스키마 정보 |\n| `docs://api` | API 문서 정보 |\n| `data://items` | 아이템 데이터 |\n| `data://users` | 사용자 데이터 |\n\n### 🎯 **MCP 사용 예시**\n\nMCP 클라이언트에서 도구 호출:\n\n```python\n# 아이템 생성\nresult = await mcp_server.call_tool(\"create_item\", {\n    \"name\": \"새 상품\",\n    \"price\": 50000,\n    \"category\": \"electronics\"\n})\n\n# 아이템 검색\nresult = await mcp_server.call_tool(\"search_items\", {\n    \"query\": \"노트북\",\n    \"search_field\": \"name\"\n})\n```\n\n## 🧪 테스트\n\n### 🏃 **테스트 실행**\n\n```bash\n# 모든 테스트 실행\npytest\n\n# 커버리지 포함\npytest --cov=src --cov-report=html\n\n# 특정 테스트 모듈\npytest tests/test_api.py -v\n\n# MCP 테스트만 실행\npytest tests/test_mcp.py -v\n\n# 통합 테스트만 실행\npytest tests/test_integration.py -v\n```\n\n### 📊 **테스트 커버리지**\n\n- **API 엔드포인트**: 모든 CRUD 작업 및 오류 시나리오\n- **MCP 도구**: 모든 도구 기능 및 오류 처리\n- **통합 테스트**: API ↔ MCP 데이터 일관성\n- **동시성 테스트**: 멀티스레드 환경에서의 안정성\n- **시스템 한계 테스트**: 대용량 데이터 및 극한 상황\n\n### 🎯 **테스트 예시**\n\n```bash\n# 개발용 빠른 테스트\npytest tests/ -k \"not integration\" --tb=short\n\n# CI/CD용 전체 테스트\npytest tests/ --cov=src --cov-report=xml --junitxml=test-results.xml\n```\n\n## 🚀 배포\n\n### 🐳 **Docker 배포**\n\n#### 프로덕션 빌드\n\n```bash\n# 이미지 빌드\ndocker build -t my-awesome-api .\n\n# 컨테이너 실행\ndocker run -p 8000:8000 -p 8001:8001 my-awesome-api\n```\n\n#### Docker Compose\n\n```bash\n# 프로덕션 환경\ndocker-compose up --build -d\n\n# 로그 확인\ndocker-compose logs -f\n\n# 서비스 중지\ndocker-compose down\n```\n\n### ☁️ **클라우드 배포**\n\n#### Heroku\n\n```bash\n# Heroku CLI 로그인\nheroku login\n\n# 앱 생성\nheroku create my-awesome-api\n\n# 환경변수 설정\nheroku config:set SECRET_KEY=\"your-secret-key\"\nheroku config:set ENVIRONMENT=\"production\"\n\n# 배포\ngit push heroku main\n```\n\n#### AWS ECS / Azure Container Instances\n\n```bash\n# 환경변수 설정 예시\nexport SECRET_KEY=\"your-production-secret-key\"\nexport ENVIRONMENT=\"production\"\nexport CORS_ORIGINS=\"https://yourdomain.com\"\n\n# 컨테이너 실행\ndocker run -p 8000:8000 -p 8001:8001 \\\n  -e SECRET_KEY=$SECRET_KEY \\\n  -e ENVIRONMENT=$ENVIRONMENT \\\n  -e CORS_ORIGINS=$CORS_ORIGINS \\\n  my-awesome-api\n```\n\n### 📊 **프로덕션 모니터링**\n\n환경변수 설정:\n\n```bash\n# 로깅 설정\nLOG_LEVEL=\"WARNING\"\nLOG_FILE=\"/var/log/app/app.log\"\n\n# 보안 설정\nSECRET_KEY=\"강력한-랜덤-키-32자-이상\"\nCORS_ORIGINS=\"https://yourdomain.com,https://admin.yourdomain.com\"\n\n# 성능 설정\nDATABASE_URL=\"postgresql://user:pass@host:5432/dbname\"\n```\n\n## 🔧 개발 가이드\n\n### 📝 **새 API 엔드포인트 추가**\n\n1. **모델 정의** (`src/core/models.py`):\n\n```python\nclass NewModel(BaseEntity):\n    name: str = Field(..., description=\"이름\")\n    value: int = Field(..., description=\"값\")\n```\n\n2. **라우터 생성** (`src/api/routers/new_router.py`):\n\n```python\nfrom fastapi import APIRouter, Depends\nfrom ...core.dependencies import get_database\nfrom ...core.models import NewModel\n\nrouter = APIRouter()\n\n@router.get(\"/items\", response_model=List[NewModel])\nasync def get_items(db: InMemoryDatabase = Depends(get_database)):\n    return db.find_all(\"new_items\")\n```\n\n3. **앱에 등록** (`src/api/app.py`):\n\n```python\nfrom .routers import new_router\napp.include_router(new_router.router, prefix=\"/api/v1\", tags=[\"New Items\"])\n```\n\n### 🔨 **새 MCP 도구 추가**\n\n1. **도구 정의** (`src/mcp_server/tools.py`):\n\n```python\n@mcp.tool()\ndef new_tool(context: Context, param1: str, param2: int = 10) -\u003e dict:\n    \"\"\"새로운 MCP 도구\"\"\"\n    try:\n        # 비즈니스 로직\n        result = process_data(param1, param2)\n        return {\"success\": True, \"result\": result}\n    except Exception as e:\n        logger.error(f\"Tool error: {e}\")\n        return {\"success\": False, \"error\": str(e)}\n```\n\n2. **리소스 추가** (`src/mcp_server/resources.py`):\n\n```python\n@mcp.resource(\"data://new_resource\")\ndef get_new_resource(context: Context) -\u003e str:\n    \"\"\"새로운 MCP 리소스\"\"\"\n    return json.dumps({\"data\": \"new_resource_data\"})\n```\n\n### 🧪 **테스트 작성**\n\n1. **단위 테스트**:\n\n```python\n@pytest.mark.asyncio\nasync def test_new_tool():\n    result = await mcp_server.call_tool(\"new_tool\", {\n        \"param1\": \"test\",\n        \"param2\": 5\n    }, mock_context)\n    assert result[\"success\"] == True\n```\n\n2. **통합 테스트**:\n\n```python\ndef test_new_endpoint(client):\n    response = client.post(\"/api/v1/new-items\", json={\n        \"name\": \"Test Item\",\n        \"value\": 100\n    })\n    assert response.status_code == 201\n```\n\n### 📋 **코딩 스타일**\n\n- **타입 힌트**: 모든 함수에 타입 힌트 사용\n- **Docstring**: Google 스타일 docstring 사용\n- **로깅**: 구조화된 로깅 (`logger.info()`, `logger.error()`)\n- **예외 처리**: 커스텀 예외 클래스 사용\n- **의존성 주입**: FastAPI Depends() 패턴 활용\n\n## 🔍 문제 해결\n\n### 🚨 **일반적인 문제들**\n\n#### 포트 충돌\n\n```bash\n# 포트 사용 확인\nlsof -i :8000\nlsof -i :8001\n\n# 프로세스 종료\nkill -9 \u003cPID\u003e\n```\n\n#### 환경변수 설정 오류\n\n```bash\n# 환경변수 확인\npython -c \"from src.core.config import settings; print(settings.dict())\"\n\n# .env 파일 확인\ncat .env\n```\n\n#### 의존성 문제\n\n```bash\n# 의존성 재설치\nuv sync --refresh\n\n# 캐시 정리\nuv cache clean\n```\n\n#### 로그 확인\n\n```bash\n# 애플리케이션 로그\ntail -f logs/app.log\n\n# Docker 로그\ndocker-compose logs -f\n```\n\n### 🔧 **디버깅 팁**\n\n1. **DEBUG 모드 활성화**:\n\n```bash\nexport DEBUG=true\nexport LOG_LEVEL=DEBUG\n```\n\n2. **개발 서버에서 실행**:\n\n```bash\nuvicorn src.api.app:create_app --factory --reload --log-level debug\n```\n\n3. **MCP 서버 단독 테스트**:\n\n```bash\npython -m src.mcp_server.server\n```\n\n## 🤝 기여하기\n\n### 🔄 **기여 워크플로우**\n\n1. **Fork** 저장소\n2. **Feature 브랜치** 생성: `git checkout -b feature/amazing-feature`\n3. **커밋**: `git commit -m 'Add amazing feature'`\n4. **푸시**: `git push origin feature/amazing-feature`\n5. **Pull Request** 생성\n\n### 📋 **기여 가이드라인**\n\n- **코드 스타일**: Black, isort, flake8 사용\n- **테스트**: 새 기능에 대한 테스트 추가\n- **문서화**: Docstring 및 README 업데이트\n- **커밋 메시지**: Conventional Commits 스타일 사용\n\n### 🛠️ **개발 환경 설정**\n\n```bash\n# 개발 의존성 설치\nuv sync --dev\n\n# pre-commit 훅 설치\npre-commit install\n\n# 코드 포맷팅\nblack src/ tests/\nisort src/ tests/\n\n# 린팅\nflake8 src/ tests/\nmypy src/\n```\n\n## 📄 라이선스\n\n이 프로젝트는 [MIT 라이선스](LICENSE) 하에 배포됩니다.\n\n## 🙏 감사의 말\n\n- [FastAPI](https://fastapi.tiangolo.com/) - 현대적인 Python 웹 프레임워크\n- [FastMCP](https://github.com/jlowin/fastmcp) - Model Context Protocol 구현\n- [Pydantic](https://pydantic-docs.helpmanual.io/) - 데이터 검증 및 설정 관리\n- [UV](https://github.com/astral-sh/uv) - 빠른 Python 패키지 매니저\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🚀 이 템플릿으로 멋진 API를 만들어보세요! 🚀\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/your-username/fastapi-mcp-template/issues\"\u003e🐛 버그 신고\u003c/a\u003e •\n  \u003ca href=\"https://github.com/your-username/fastapi-mcp-template/discussions\"\u003e💬 토론\u003c/a\u003e •\n  \u003ca href=\"https://github.com/your-username/fastapi-mcp-template/wiki\"\u003e📖 위키\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoonheeu%2Ffastapi-mcp-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoonheeu%2Ffastapi-mcp-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoonheeu%2Ffastapi-mcp-template/lists"}