Detta repository innehåller en Python-implementation av Model Context Protocol (MCP), som visar hur man skapar både en server- och klientapplikation som kommunicerar med MCP-standarden.
MCP-implementationen består av två huvudkomponenter:
-
MCP Server (
server.py) - En server som exponerar:- Tools: Funktioner som kan anropas på distans
- Resources: Data som kan hämtas
- Prompts: Mallar för att generera prompts för språkmodeller
-
MCP Client (
client.py) - En klientapplikation som ansluter till servern och använder dess funktioner
Denna implementation demonstrerar flera viktiga MCP-funktioner:
completion- Genererar textkompletteringar från AI-modeller (simulerat)add- Enkel räknare som adderar två tal
models://- Returnerar information om tillgängliga AI-modellergreeting://{name}- Returnerar en personlig hälsning för ett givet namn
review_code- Genererar en prompt för kodgranskning
För att använda denna MCP-implementation, installera de nödvändiga paketen:
pip install mcp-server mcp-clientKör servern i ett terminalfönster:
python server.pyServern kan också köras i utvecklingsläge med MCP CLI:
mcp dev server.pyEller installeras i Claude Desktop (om tillgängligt):
mcp install server.pyKör klienten i ett annat terminalfönster:
python client.pyDetta kommer att ansluta till servern och demonstrera alla tillgängliga funktioner.
Klienten (client.py) visar alla MCP-funktioner:
python client.pyDetta ansluter till servern och testar alla funktioner inklusive tools, resources och prompts. Utdata visar:
- Resultat från räknarverktyget (5 + 7 = 12)
- Svar från kompletteringsverktyget på "What is the meaning of life?"
- Lista över tillgängliga AI-modeller
- Personlig hälsning för "MCP Explorer"
- Mall för kodgranskningsprompt
Servern är implementerad med FastMCP API, som erbjuder högre abstraktioner för att definiera MCP-tjänster. Här är ett förenklat exempel på hur tools definieras:
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + bKlienten använder MCP-klientbiblioteket för att ansluta till och anropa servern:
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})För mer information om MCP, besök: https://modelcontextprotocol.io/
Prohlášení o vyloučení odpovědnosti:
Tento dokument byl přeložen pomocí AI překladatelské služby Co-op Translator. I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Originální dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.