MCP Forge
概述
內容詳情
替代品
什麼是MCP服務器?
MCP服務器是一個標準化的工具開發框架,它通過集成FastAPI和FastAPI-MCP,將傳統的API接口轉換為可被AI調用的MCP工具。如何使用MCP服務器?
只需定義服務接口、實現業務邏輯、創建API端點並啟用MCP工具即可快速部署AI工具。適用場景
適用於AI工具開發團隊、希望將現有API轉換為AI工具的開發者以及實施微服務架構的企業。主要功能
自動轉換傳統API為MCP工具
通過FastAPI-MCP自動將API端點轉換為可被AI調用的MCP工具。
接口與實現分離
支持清晰分離接口定義和具體實現,便於測試和環境切換。
依賴注入設計
利用FastAPI的依賴注入機制實現靈活的組件組合和解耦。
完整的開發流水線
提供從開發到測試再到部署的全面支持。
示例驅動的文檔
通過實踐示例演示最佳實踐,加速上手過程。
優勢
快速構建高質量AI工具
標準化MCP工具開發流程
易於維護和擴展
侷限性
需要一定的Python基礎
對複雜業務邏輯的支持可能有限
如何使用
安裝依賴
使用uv作為包管理器安裝依賴並設置開發環境。
啟動開發服務器
啟動開發服務器以運行示例服務。
訪問API文檔
在瀏覽器中訪問http://localhost:5000/docs查看API文檔。
連接MCP端點
使用MCP客戶端連接到http://localhost:5000/mcp。
使用案例
搜索項目
定義服務接口、實現Mock或Real服務、創建API端點並通過FastAPI-MCP生成MCP工具。
情感分析
定義預測情感的API端點並通過FastAPI-MCP生成MCP工具。
常見問題
如何安裝MCP服務器?
使用uv作為包管理器安裝依賴並設置開發環境。
如何啟動開發服務器?
運行命令'make dev'啟動開發服務器。
如何驗證API是否正常工作?
在瀏覽器中訪問http://localhost:5000/docs查看API文檔。
相關資源
FastAPI官方文檔
FastAPI框架的詳細文檔。
FastAPI-MCP GitHub倉庫
FastAPI-MCP工具的開源代碼庫。
安裝
複製以下命令到你的Client進行配置
注意:您的密鑰屬於敏感信息,請勿與任何人分享。
🚀 使用 FastAPI 和 FastAPI-MCP 開發 MCP 服務器框架
本項目藉助 FastAPI 和 FastAPI-MCP 構建 MCP 服務器框架,可在多個雲平臺協調管理計算任務,提供豐富 API 接口,支持多協議與集成方案,適用於複雜雲環境。
🚀 快速開始
要開始使用 FastAPI 和 FastAPI-MCP 創建一個基本的 MCP 服務器,請按照以下步驟操作:
- 
安裝必要的依賴項: pip install fastapi fastapi_mcp uvicorn
- 
創建主應用文件 (main.py): from fastapi import FastAPI from fastapi_mcp import FastApiMCP app = FastAPI() # 定義一個標準的 FastAPI 端點 @app.post("/predict", operation_id="predict_sentiment") async def predict_sentiment(text: str): return {"sentiment": "positive", "confidence": 0.92} # 創建並掛載 MCP 服務,自動將上面的端點轉換為 MCP 工具 mcp = FastApiMCP( app, name="sentiment-analysis", description="情感分析服務", base_url="http://localhost:5000", include_operations=["predict_sentiment"] ) # 掛載 MCP 服務到指定路徑 mcp.mount(mount_path="/mcp") if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)
- 
運行應用: python main.py
- 
訪問服務: - 訪問 FastAPI 端點:http://localhost:5000/predict
- 訪問 MCP 工具:http://localhost:5000/mcp
 
- 訪問 FastAPI 端點:
✨ 主要特性
核心功能
- 跨雲平臺兼容性:支持 AWS、GCP、Azure 等主流雲服務提供商。
- 負載均衡與故障轉移:自動分配任務到不同的雲實例,確保高可用性。
- 日誌與監控集成:內置對 Prometheus 和 Grafana 的支持,方便即時監控和分析。
- 安全認證:支持 OAuth2、JWT 等多種身份驗證機制,保障數據安全。
高級功能
- 分佈式事務管理:確保跨雲服務的事務一致性。
- 緩存與加速:集成 Redis 或 Memcached 進行結果緩存,提升響應速度。
- 動態擴展:根據負載自動調整資源使用,優化成本。
- 智能路由:基於地理位置或策略分配請求到最佳可用節點。
📦 安裝指南
環境要求
- 操作系統:Linux (推薦) 或 macOS
- Python 版本:3.6+
- 依賴管理工具:poetry/pipenv (可選)
- 額外工具:Docker, kubectl (如需容器化部署)
安裝步驟
- 
克隆項目倉庫: git clone https://github.com/yourusername/mcp-server.git cd mcp-server
- 
創建虛擬環境並安裝依賴: python -m venv .venv source .venv/bin/activate # 在 macOS/Linux 下 pip install -r requirements.txt
- 
配置項目: - 修改 config.py中的雲服務提供商憑證和 API 端點。
- 更新日誌記錄配置,確保輸出到合適的位置。
 
- 修改 
- 
啟動服務器: uvicorn main:app --host 0.0.0.0 --port 8000
另一種安裝方式
安裝依賴
pip install mcp-server
配置文件
創建 config.yaml 文件,如下所示:
cloud_providers:
  - name: AWS
    region: us-east-2
    access_key: YOUR_AWS_KEY
    secret_key: YOUR_AWS_SECRET
  - name: GCP
    region: europe-west1
    project_id: your-gcp-project
    key_path: path/to/service-account.json
  - name: Azure
    region: eastus
    subscription_id: your_azure_subscription_id
    client_id: your_azure_client_id
    client_secret: your_azure_client_secret
啟動服務器
python3 -m mcp_server.run --config config.yaml
💻 使用示例
基礎用法
情感分析服務
# app/endpoints/sentiment_endpoints.py
from fastapi import APIRouter, Depends
from app.services.sentiment_service import SentimentService
router = APIRouter()
@router.post("/sentiment")
async def analyze_sentiment(text: str, service: SentimentService = Depends(SentimentService)):
    sentiment = await service.analyze(text)
    return {"sentiment": sentiment}
停車場搜索服務
# app/endpoints/parking_endpoints.py
from fastapi import APIRouter, Depends
from app.services.parking_service import ParkingService
router = APIRouter()
@router.get("/parking/nearby")
async def find_nearby_parkings(latitude: float, longitude: float, radius: int,
                              service: ParkingService = Depends(ParkingService)):
    result = await service.find_nearby_parkings(latitude, longitude, radius)
    return {"data": result}
高級用法
個性化推薦系統
# app/endpoints/recommendation_endpoints.py
from fastapi import APIRouter, Depends
from app.services.recommendation_service import RecommendationService
router = APIRouter()
@router.post("/recommendations")
async def get_recommendations(user_id: int, service: RecommendationService = Depends(RecommendationService)):
    recommendations = await service.get Recommendations(user_id)
    return {"recommendations": recommendations}
分佈式事務管理
from mcp_server.transaction import TransactionManager
tm = TransactionManager()
with tm.context():
    # 執行跨雲操作
    pass
智能路由與負載均衡
class SmartRouter:
    def route_request(self, request):
        # 返回目標雲服務提供商和區域
        pass
動態擴展
# Kubernetes Horizontal Pod Autoscaler 配置
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: mcp-server-hpa
spec:
  scaleRef:
    kind: Deployment
    name: mcp-server-deployment
    apiVersion: apps/v1
  minReplicas: 2
  maxReplicas: 5
  targetCPUUtilizationPercentage: 80
📚 詳細文檔
項目結構
一個典型的 MCP 服務器項目可能包含以下文件和目錄:
mcp_server/
├── main.py                # 主應用文件
├── app/                  # FastAPI 應用模塊
│   ├── models.py         # 數據模型定義
│   ├── services/        # 服務類(如數據庫連接、業務邏輯)
│   └── endpoints/       # API 端點實現
├── config/               # 配置管理
│   ├── settings.py      # 應用設置
│   └── environment.py   # 環境變量管理
└── tests/                # 測試用例
    ├── test_endpoints.py  # 單元測試
    └── integration_tests.py  # 集成測試
基礎功能實現
創建服務類
# app/services/parking_service.py
class ParkingService:
    def __init__(self, db):
        self.db = db
    async def find_nearby_parkings(self, latitude: float, longitude: float, radius: int) -> list:
        # 查詢數據庫以獲取附近的停車場
        pass
實現 API 端點
# app/endpoints/parking_endpoints.py
from fastapi import APIRouter, Depends
from app.services.parking_service import ParkingService
from config.environment import get_db
router = APIRouter()
@router.get("/parking/nearby")
async def find_nearby_parkings(latitude: float, longitude: float, radius: int,
                              service: ParkingService = Depends(ParkingService)):
    db = next(get_db())
    result = await service.find_nearby_parkings(latitude, longitude, radius)
    return {"data": result}
配置管理
# config/settings.py
class Settings:
    def __init__(self):
        self.debug = True  # 調試模式,默認為真
    @property
    def database_url(self) -> str:
        return "sqlite:///./test.db"
    @property
    def secret_key(self) -> str:
        return "your-secret-key-here"
高級功能實現
依賴注入
FastAPI 的依賴注入機制非常強大,可以用於管理各種依賴項。
# config/database.py
def get_db():
    db = connect_to_db()
    try:
        yield db
    finally:
        db.close()
@app.get("/items/")
async def get_items(db=Depends(get_db)):
    return db.query(Item).all()
環境適應
# app/services/database_service.py
class DatabaseService:
    def __init__(self, settings):
        self.settings = settings
        self.db = connect_to_db(settings.database_url)
    async def query(self, sql: str) -> list:
        pass
日誌記錄和監控
集成日誌庫(如 logging)和監控工具(如 Prometheus、Grafana)可以提供更詳細的運行時信息。
常用功能示例
情感分析服務
# app/endpoints/sentiment_endpoints.py
from fastapi import APIRouter, Depends
from app.services.sentiment_service import SentimentService
router = APIRouter()
@router.post("/sentiment")
async def analyze_sentiment(text: str, service: SentimentService = Depends(SentimentService)):
    sentiment = await service.analyze(text)
    return {"sentiment": sentiment}
停車場搜索服務
# app/endpoints/parking_endpoints.py
from fastapi import APIRouter, Depends
from app.services.parking_service import ParkingService
router = APIRouter()
@router.get("/parking/nearby")
async def find_nearby_parkings(latitude: float, longitude: float, radius: int,
                              service: ParkingService = Depends(ParkingService)):
    result = await service.find_nearby_parkings(latitude, longitude, radius)
    return {"data": result}
個性化推薦系統
# app/endpoints/recommendation_endpoints.py
from fastapi import APIRouter, Depends
from app.services.recommendation_service import RecommendationService
router = APIRouter()
@router.post("/recommendations")
async def get_recommendations(user_id: int, service: RecommendationService = Depends(RecommendationService)):
    recommendations = await service.get Recommendations(user_id)
    return {"recommendations": recommendations}
常見問題與故障排除
- 問:如何處理 API 端點的錯誤? 答:可以使用 FastAPI 的異常處理機制,定義自定義異常並將其註冊到應用中。
- 問:如何實現速率限制和認證?
答:可以集成第三方庫如 fastapi-limiter和python-jose來實現這些功能。
性能優化與擴展
使用緩存技術
# config/caching.py
from fastapi import Request
from typing import Any
from fastapi.responses import Response
class CacheInterceptor:
    def __init__(self, cache):
        self.cache = cache
    async def intercept_request(self, request: Request) -> Any:
        key = f"{request.method}_{request.url}"
        value = await self.cache.get(key)
        if value is not None:
            return Response(value)
    async def intercept_response(self, response: Response) -> None:
        key = f"{response.request.method}_{response.request.url}"
        value = str(response.body(), encoding="utf-8")
        await self.cache.set(key, value)
分佈式事務管理
# config/transaction.py
from fastapi import Depends
from typing import Any
import asyncio
class TransactionManager:
    def __init__(self):
        pass
    async def begin(self):
        pass
    async def commit(self):
        await asyncio.sleep(1)  # 示例事務提交時間
    async def rollback(self):
        pass
即時監控與日誌記錄
# config/monitoring.py
import logging
from fastapi import FastAPI
from prometheus_fastapi_instrumentator import Instrumentator
app = FastAPI()
Instrumentator.instrument(app)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
項目部署與維護
使用 Docker 部署
創建 Dockerfile:
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "--host", "0.0.0.0", "--port", "8000", "main:app"]
構建鏡像並運行:
docker build -t mcp-server .
docker run -p 8000:8000 mcp-server
使用 Kubernetes 擴展
創建 Deployment 和 Service 文件:
# deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mcp-server-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mcp-server
  template:
    metadata:
      labels:
        app: mcp-server
    spec:
      containers:
        - name: mcp-server
          image: mcp-server:latest
          ports:
            - containerPort: 8000
# service.yml
apiVersion: v1
kind: Service
metadata:
  name: mcp-server-service
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8000
  selector:
    app: mcp-server
應用配置:
kubectl apply -f deployment.yml -f service.yml
使用 Prometheus 監控
配置 Prometheus 監控 Kubernetes 集群中的 MCP Server:
# prometheus.yml
scrape_configs:
  - job_name: 'mcp-server'
    static_configs:
      - targets: ['<kubernetes-master-ip>:80']
使用 Grafana 可視化
創建 Dashboard 來展示監控數據,集成不同的圖表和警報規則。
🔧 技術細節
核心功能技術細節
- 跨雲平臺兼容性:通過封裝不同雲服務提供商的 API 接口,實現對 AWS、GCP、Azure 等主流雲服務的支持。
- 負載均衡與故障轉移:採用算法根據雲實例的負載和可用性,自動分配任務,同時在某個實例出現故障時,能快速將任務轉移到其他可用實例。
- 日誌與監控集成:內置對 Prometheus 和 Grafana 的支持,通過在代碼中集成相應的 SDK,實現即時數據的採集和展示。
- 安全認證:支持 OAuth2、JWT 等多種身份驗證機制,在 API 接口層進行身份驗證和授權,保障數據安全。
高級功能技術細節
- 分佈式事務管理:集成 atom或orchestrator等工具,確保跨雲服務的事務一致性。
- 緩存與加速:集成 Redis 或 Memcached 進行結果緩存,通過在代碼中添加緩存邏輯,提升響應速度。
- 動態擴展:根據負載自動調整資源使用,通過集成 Kubernetes 或 Elastic Beanstalk,實現計算資源的自動擴展。
- 智能路由:基於地理位置或策略分配請求到最佳可用節點,通過自定義路由邏輯,根據即時指標和預設策略進行請求分發。
📄 許可證
文檔中未提及相關許可證信息。
最佳實踐
- 模塊化設計:將功能拆分成獨立的模塊或服務,便於維護和擴展。
- 依賴管理:使用工具如 poetry或pipenv管理 Python 依賴,確保環境一致性。
- 配置管理:使用配置文件而不是硬編碼值,方便在不同環境中部署。
- 日誌記錄:集成結構化日誌記錄庫如 logging或sentry,便於調試和分析問題。
- 測試驅動開發:編寫單元測試、集成測試和端到端測試,確保代碼質量。
項目總結
通過以上步驟,您可以構建一個高效可靠的 MCP Server。從模塊化的 API 設計到性能優化和擴展,每個細節都至關重要。使用 Docker 和 Kubernetes 進行容器化部署,並結合 Prometheus 和 Grafana 進行監控和可視化,將使您的服務更加穩定和易於管理。
替代品
K
Klavis
Klavis AI是一個開源項目,提供在Slack、Discord和Web平臺上簡單易用的MCP(模型上下文協議)服務,包括報告生成、YouTube工具、文檔轉換等多種功能,支持非技術用戶和開發者使用AI工作流。
TypeScript
 10.2K
 5分
M
MCP
微軟官方MCP服務器,為AI助手提供最新微軟技術文檔的搜索和獲取功能
 9.6K
 5分
A
Aderyn
Aderyn是一個開源的Solidity智能合約靜態分析工具,由Rust編寫,幫助開發者和安全研究人員發現Solidity代碼中的漏洞。它支持Foundry和Hardhat項目,可生成多種格式報告,並提供VSCode擴展。
Rust
 6.2K
 5分
D
Devtools Debugger MCP
Node.js調試器MCP服務器,提供基於Chrome DevTools協議的完整調試功能,包括斷點設置、單步執行、變量檢查和表達式評估等
TypeScript
 5.6K
 4分
S
Scrapling
Scrapling是一個自適應網頁抓取庫,能自動學習網站變化並重新定位元素,支持多種抓取方式和AI集成,提供高性能解析和開發者友好體驗。
Python
 9.4K
 5分
M
Mcpjungle
MCPJungle是一個自託管的MCP網關,用於集中管理和代理多個MCP服務器,為AI代理提供統一的工具訪問接口。
Go
 0
 4.5分

Cipher
Cipher是一個專為編程AI代理設計的開源記憶層框架,通過MCP協議與各種IDE和AI編碼助手集成,提供自動記憶生成、團隊記憶共享和雙系統記憶管理等核心功能。
TypeScript
 0
 5分
N
Nexus
Nexus是一個AI工具聚合網關,支持連接多個MCP服務器和LLM提供商,通過統一端點提供工具搜索、執行和模型路由功能,支持安全認證和速率限制。
Rust
 0
 4分

Markdownify MCP
Markdownify是一個多功能文件轉換服務,支持將PDF、圖片、音頻等多種格式及網頁內容轉換為Markdown格式。
TypeScript
 21.0K
 5分

Baidu Map
已認證
百度地圖MCP Server是國內首個兼容MCP協議的地圖服務,提供地理編碼、路線規劃等10個標準化API接口,支持Python和Typescript快速接入,賦能智能體實現地圖相關功能。
Python
 26.2K
 4.5分

Firecrawl MCP Server
Firecrawl MCP Server是一個集成Firecrawl網頁抓取能力的模型上下文協議服務器,提供豐富的網頁抓取、搜索和內容提取功能。
TypeScript
 69.4K
 5分

Sequential Thinking MCP Server
一個基於MCP協議的結構化思維服務器,通過定義思考階段幫助分解複雜問題並生成總結
Python
 21.8K
 4.5分

Notion Api MCP
已認證
一個基於Python的MCP服務器,通過Notion API提供高級待辦事項管理和內容組織功能,實現AI模型與Notion的無縫集成。
Python
 11.6K
 4.5分

Magic MCP
Magic Component Platform (MCP) 是一個AI驅動的UI組件生成工具,通過自然語言描述幫助開發者快速創建現代化UI組件,支持多種IDE集成。
JavaScript
 15.7K
 5分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一個通過MCP協議快速部署HTML內容到EdgeOne Pages並獲取公開URL的服務
TypeScript
 15.8K
 4.8分

Context7
Context7 MCP是一個為AI編程助手提供即時、版本特定文檔和代碼示例的服務,通過Model Context Protocol直接集成到提示中,解決LLM使用過時信息的問題。
TypeScript
 46.1K
 4.7分
