Model Context Protocol (MCP) परिचय
James Chapman
AI Curriculum Manager, DataCamp
अध्याय 2

अध्याय 2
संसाधन: केवल-पढ़ने योग्य डेटा या डेटा ऑब्जेक्ट जिन्हें MCP क्लाइंट प्राप्त करता है


from mcp.server.fastmcp import FastMCP mcp = FastMCP("Timezone Converter")@mcp.resource("file://locations.txt")def get_locations(): try: with open('locations.txt', 'r') as f: content = f.read() return content except FileNotFoundError: return "locations.txt file not found"
URI: यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर
locations.txt (सर्वर-पक्ष) → समयक्षेत्र स्थानों की सूची
@mcp.resource("file://locations.txt")
def get_locations() -> str:
"""
समयक्षेत्र रूपांतरण के लिए शहरों की सूची प्राप्त करें।
Returns:
locations.txt फ़ाइल की सामग्री, जिसमें शहरों के नाम हैं
"""
try:
with open('locations.txt', 'r') as f:
content = f.read()
return content
except FileNotFoundError:
return "locations.txt file not found"
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Timezone Converter")
# Tools from before...
@mcp.resource("file://locations.txt")
def get_locations() -> str:
# ...
if __name__ == "__main__":
mcp.run(transport="stdio")
async def list_resources(): """MCP सर्वर से उपलब्ध सभी संसाधन सूचीबद्ध करें।""" params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"]) async with stdio_client(params) as (reader, writer): async with ClientSession(reader, writer) as session: await session.initialize()response = await session.list_resources()print("उपलब्ध संसाधन:") for resource in response.resources: print(f" - {resource.uri}") print(f" Name: {resource.name}") print(f" Description: {resource.description}") return response.resources
print(asyncio.run(list_resources()))
उपलब्ध संसाधन:
- file://locations.txt/
Name: get_locations
Description:
समयक्षेत्र रूपांतरण के लिए शहरों की सूची प्राप्त करें।
Returns:
locations.txt फ़ाइल की सामग्री, जिसमें शहरों के नाम हैं
[Resource(name='get_locations', title=None, uri=AnyUrl('file://locations.txt/'),
description='\n समयक्षेत्र रूपांतरण के लिए शहरों की सूची प्राप्त करें।\n\n...',
mimeType='text/plain', size=None, icons=None, annotations=None, meta=None)]
async def read_resource(resource_uri: str): """URI द्वारा कोई विशिष्ट संसाधन पढ़ें।""" params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"]) async with stdio_client(params) as (reader, writer): async with ClientSession(reader, writer) as session: await session.initialize()print(f"संसाधन पढ़ रहे हैं: {resource_uri}") resource_content = await session.read_resource(resource_uri)for content in resource_content.contents: print(f"\nसामग्री ({content.mimeType}):") print(content.text) return resource_content
print(asyncio.run(read_resource('file://locations.txt/')))
संसाधन पढ़ रहे हैं: file://locations.txt
सामग्री (text/plain):
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
...
ReadResourceResult(meta=None, contents=[TextResourceContents(uri=AnyUrl('file://locations.txt/'),
mimeType='text/plain', meta=None, text='Africa/Abidjan\nAfrica/Accra...')])
Model Context Protocol (MCP) परिचय