फास्टापी-एमसीपी एक शून्य-कॉन्फ़िगरेशन टूल है जो मूल रूप से फास्टपी एंडपॉइंट्स को उजागर करता है मॉडल संदर्भ प्रोटोकॉल (एमसीपी) औजार। यह आपको एक MCP सर्वर को सीधे अपने Fastapi ऐप के भीतर माउंट करने की अनुमति देता है, जिससे एकीकरण को सहज बनाया जा सके।
इस ट्यूटोरियल में, हम यह पता लगाएंगे कि Fastapi EndPoint को परिवर्तित करके Fastapi-MCP का उपयोग कैसे करें-जो कि MCP- संगत सर्वर में राष्ट्रीय उद्यान सेवा API का उपयोग करके अमेरिकी राष्ट्रीय उद्यानों के लिए अलर्ट प्राप्त करता है। हम काम करेंगे कर्सर आइड इस सेटअप के माध्यम से चरण दर चरण के माध्यम से चलने के लिए।
राष्ट्रीय उद्यान सेवा एपीआई
राष्ट्रीय उद्यान सेवा एपीआई का उपयोग करने के लिए, आप इस लिंक पर जाकर और एक लघु फॉर्म भरकर एपीआई कुंजी का अनुरोध कर सकते हैं। एक बार सबमिट करने के बाद, एपीआई कुंजी आपके ईमेल पर भेजी जाएगी।
इस कुंजी को सुलभ रखना सुनिश्चित करें – हम जल्द ही इसका उपयोग करेंगे।
कर्सर आइड इंस्टॉलेशन
आप डाउनलोड कर सकते हैं कर्सर आइड Cursor.com से। यह विशेष रूप से ए-असिस्टेड विकास के लिए बनाया गया है। यह डाउनलोड करने के लिए स्वतंत्र है और एक के साथ आता है 14-दिवसीय नि: शुल्क परीक्षण।
पायथन निर्भरता
आवश्यक पुस्तकालयों को डाउनलोड करने के लिए निम्न कमांड चलाएं:
pip install fastapi uvicorn httpx python-dotenv pydantic fastapi-mcp mcp-proxy
हम एक साधारण FASTAPI ऐप बना रहे हैं जो अमेरिकी राष्ट्रीय उद्यानों से संबंधित अलर्ट देने के लिए राष्ट्रीय उद्यान सेवा एपीआई का उपयोग करता है। बाद में हम इस ऐप को MCP सर्वर में बदल देंगे।
पहले एक .ENV फ़ाइल बनाएं और अपनी API कुंजी स्टोर करें
प्रतिस्थापित करें
from fastapi import FastAPI, HTTPException, Query
from typing import List, Optional
import httpx
import os
from dotenv import load_dotenv
from fastapi_mcp import FastApiMCP
# Load environment variables from .env file
load_dotenv()
app = FastAPI(title="National Park Alerts API")
# Get API key from environment variable
NPS_API_KEY = os.getenv("NPS_API_KEY")
if not NPS_API_KEY:
raise ValueError("NPS_API_KEY environment variable is not set")
@app.get("/alerts")
async def get_alerts(
parkCode: Optional(str) = Query(None, description="Park code (e.g., 'yell' for Yellowstone)"),
stateCode: Optional(str) = Query(None, description="State code (e.g., 'wy' for Wyoming)"),
q: Optional(str) = Query(None, description="Search term")
):
"""
Retrieve park alerts from the National Park Service API
"""
url = "https://developer.nps.gov/api/v1/alerts"
params = {
"api_key": NPS_API_KEY
}
# Add optional parameters if provided
if parkCode:
params("parkCode") = parkCode
if stateCode:
params("stateCode") = stateCode
if q:
params("q") = q
try:
async with httpx.AsyncClient() as client:
response = await client.get(url, params=params)
response.raise_for_status()
return response.json()
except httpx.HTTPStatusError as e:
raise HTTPException(
status_code=e.response.status_code,
detail=f"NPS API error: {e.response.text}"
)
except Exception as e:
raise HTTPException(
status_code=500,
detail=f"Internal server error: {str(e)}"
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
ऐप का परीक्षण करने के लिए, टर्मिनल में निम्न कमांड चलाएं:
एक बार जब सर्वर चल रहा है, तो अपना ब्राउज़र खोलें और जाएं: http: // localhost: 8000/डॉक्स। यह एक इंटरफ़ेस खोलेगा जहां हम अपने एपीआई समापन बिंदु का परीक्षण कर सकते हैं
- पर क्लिक करें “कोशिश करके देखो” बटन।
- पार्क_कोड पैरामीटर क्षेत्र में, “सीए” (कैलिफोर्निया पार्कों के लिए) दर्ज करें।
- क्लिक “निष्पादित करना”।
आपको कैलिफोर्निया में राष्ट्रीय उद्यानों के लिए सतर्क जानकारी वाले JSON पेलोड के साथ 200 ओके प्रतिक्रिया प्राप्त करनी चाहिए।
ऐसा करने के लिए, निम्न कोड जोड़ें से ठीक पहले if __name__ == “__main__”: अपने app.py फ़ाइल में ब्लॉक:
mcp = FastApiMCP(
app,
# Optional parameters
name="National Park Alerts API",
description="API for retrieving alerts from National Parks",
base_url="http://localhost:8000",
)
mcp.mount()
।
वैकल्पिक रूप से, आप निम्नलिखित कोड को कॉपी कर सकते हैं और अपनी जगह ले सकते हैं app.py उसी के साथ:
from fastapi import FastAPI, HTTPException, Query
from typing import List, Optional
import httpx
import os
from dotenv import load_dotenv
from fastapi_mcp import FastApiMCP
# Load environment variables from .env file
load_dotenv()
app = FastAPI(title="National Park Alerts API")
# Get API key from environment variable
NPS_API_KEY = os.getenv("NPS_API_KEY")
if not NPS_API_KEY:
raise ValueError("NPS_API_KEY environment variable is not set")
@app.get("/alerts")
async def get_alerts(
parkCode: Optional(str) = Query(None, description="Park code (e.g., 'yell' for Yellowstone)"),
stateCode: Optional(str) = Query(None, description="State code (e.g., 'wy' for Wyoming)"),
q: Optional(str) = Query(None, description="Search term")
):
"""
Retrieve park alerts from the National Park Service API
"""
url = "https://developer.nps.gov/api/v1/alerts"
params = {
"api_key": NPS_API_KEY
}
# Add optional parameters if provided
if parkCode:
params("parkCode") = parkCode
if stateCode:
params("stateCode") = stateCode
if q:
params("q") = q
try:
async with httpx.AsyncClient() as client:
response = await client.get(url, params=params)
response.raise_for_status()
return response.json()
except httpx.HTTPStatusError as e:
raise HTTPException(
status_code=e.response.status_code,
detail=f"NPS API error: {e.response.text}"
)
except Exception as e:
raise HTTPException(
status_code=500,
detail=f"Internal server error: {str(e)}"
)
mcp = FastApiMCP(
app,
# Optional parameters
name="National Park Alerts API",
description="API for retrieving alerts from National Parks",
base_url="http://localhost:8000",
)
mcp.mount()
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
अगला, आपको कर्सर में अपना Fastapi MCP सर्वर पंजीकृत करना होगा।
- कर्सर खोलें और नेविगेट करें:
फ़ाइल> प्राथमिकताएं> कर्सर सेटिंग्स> एमसीपी> एक नया वैश्विक एमसीपी सर्वर जोड़ें - यह mcp.json कॉन्फ़िगरेशन फ़ाइल खोलेगा।
- उस फ़ाइल के अंदर, निम्नलिखित प्रविष्टि जोड़ें और इसे सहेजें:
{
"mcpServers": {
"National Park Service": {
"command": "mcp-proxy",
"args": ("http://127.0.0.1:8000/mcp")
}
}
}
अब निम्न कमांड का उपयोग करके ऐप चलाएं:
एक बार ऐप चलने के बाद, फ़ाइल> वरीयताओं> कर्सर सेटिंग्स> एमसीपी पर नेविगेट करें। अब आपको अपने नए जोड़े गए सर्वर को MCP सेक्शन के तहत सूचीबद्ध और रनिंग देखना चाहिए।
अब आप चैट में एक संकेत दर्ज करके सर्वर का परीक्षण कर सकते हैं। यह हमारे MCP सर्वर का उपयोग उचित परिणाम लाने और वापस करने के लिए करेगा।
इसके अलावा, हमें फॉलो करना न भूलें ट्विटर और हमारे साथ जुड़ें तार -चैनल और लिंक्डइन जीआरओयूपी। हमारे साथ जुड़ने के लिए मत भूलना 90K+ एमएल सबरेडिट।
🔥 ।

मैं जामिया मिलिया इस्लामिया, नई दिल्ली से एक सिविल इंजीनियरिंग स्नातक (2022) हूं, और मुझे डेटा विज्ञान, विशेष रूप से तंत्रिका नेटवर्क और विभिन्न क्षेत्रों में उनके आवेदन में गहरी रुचि है।
