MCP सर्वरों में संसाधन

Model Context Protocol (MCP) परिचय

James Chapman

AI Curriculum Manager, DataCamp

MCP संसाधन क्या हैं?

 

अध्याय 2

  • संसाधन + प्रॉम्प्ट्स

primitive1.png

Model Context Protocol (MCP) परिचय

MCP संसाधन क्या हैं?

 

अध्याय 2

  • संसाधन और प्रॉम्प्ट्स
  • API और डेटाबेस एकीकरण

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

  • आवश्यक नहीं कि LLM द्वारा कॉल हों
  • एप्लिकेशन-चालित → जैसे, user preferences
  • उपयोगकर्ता-चालित → जैसे, file upload

primitive2.png

Model Context Protocol (MCP) परिचय

AI ऐप्स में MCP संसाधन

 

mcp_resources.png

Model Context Protocol (MCP) परिचय

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: यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर

    • लोकल फ़ाइल, API, रिमोट सर्वर आदि को इंगित कर सकता है
    • User ID जैसे पैरामीटर डायनामिकली डाल सकता है
  • locations.txt (सर्वर-पक्ष) → समयक्षेत्र स्थानों की सूची

Model Context Protocol (MCP) परिचय

MCP सर्वर संसाधन परिभाषित करना

@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"
Model Context Protocol (MCP) परिचय

सर्वर सहेजना: timezone_server.py

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")
Model Context Protocol (MCP) परिचय

क्लाइंट: संसाधन सूचीबद्ध करना

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
Model Context Protocol (MCP) परिचय

क्लाइंट: संसाधन सूचीबद्ध करना

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)]
Model Context Protocol (MCP) परिचय

क्लाइंट: संसाधन पढ़ना

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
Model Context Protocol (MCP) परिचय

क्लाइंट: संसाधन पढ़ना

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) परिचय

आइए अभ्यास करें!

Model Context Protocol (MCP) परिचय

Preparing Video For Download...