项目文件夹

文件

పరీక్ష మరియు డీబగ్గింగ్

మీ MCP సర్వర్‌ను పరీక్షించడం ప్రారంభించక ముందే, అందుబాటులో ఉన్న సాధనాలు మరియు డీబగ్గింగ్‌కు బెస్టు ప్రాక్టీసులను అర్థం చేసుకోవడం ముఖ్యం. సమర్థవంతమైన పరీక్ష మీ సర్వర్ కోరినట్లుగా పనిచేస్తుందో లేదో నిర్ధారిస్తుంది మరియు మీరు సమస్యలను త్వరగా గుర్తించి పరిష్కరించుకోవడానికి సహాయపడుతుంది. క్రింద ఇచ్చిన విభాగంలో మీ MCP అమలుదారిత్వాన్ని ధృవీకరించడానికి సిఫారసు చేయబడిన విధానాలను వివరించబడింది.

అవలోకనం

ఈ పాఠం సరైన పరీక్షా విధానాన్ని ఎంచుకోవడం మరియు సమర్థవంతమైన పరీక్ష సాధనాన్ని ఎలా ఉపయోగించాలో కవర్ చేస్తుంది.

అభ్యాస లక్ష్యాలు

ఈ పాఠాంతంలో, మీరు క్రింద ఇవ్వబడిన పనులు చేయగలుగుతారు:

  • పరీక్ష కోసం విభిన్న విధానాలను వివరిం చండి.
  • వివిధ సాధనాలను ఉపయోగించి మీ కోడ్‌ను సమర్థవంతంగా పరీక్షించండి.

MCP సర్వర్లను పరీక్షించడం

MCP మీ సర్వర్లను పరీక్షించడానికి మరియు డీబగ్ చేసుకోవడానికి కొన్ని సాధనాలను అందిస్తుంది:

  • MCP ఇన్స్పెక్టర్: CLI టూల్ గా మరియు విజువల్ టూల్ గా రెండింటిగా నడపడగల కమాండ్ లైన్ సాధనం.
  • మాన్యువల్ పరీక్ష: మీరు curl లాంటి టూల్ ద్వారా వెబ్ రిక్వెస్ట్‌లు నడపవచ్చు, HTTP నడుపగల ఏ టూల్ అయినా సరిపోతుంది.
  • యూనిట్ పరీక్ష: సర్వర్ మరియు క్లయింట్ ఫీచర్లను పరీక్షించేందుకు మీ ఇష్టమైన పరీక్షా ఫ్రేమ్‌వర్క్ ఉపయోగించవచ్చు.

MCP ఇన్స్పెక్టర్ ఉపయోగించడం

మునుపటి పాఠాలలో ఈ టూల్ ఉపయోగాన్ని వివరించాం కానీ ఇక్కడ దీన్ని కొద్ది మొత్తంలో చర్చిద్దాం. ఇది Node.js లో నిర్మించబడిన సాధనం మరియు మీరు npx ఎగ్జిక్యూటబుల్‌ను కాల్ చేయడం ద్వారా దీన్ని ఉపయోగించవచ్చు, ఇది టూల్‌ని తాత్కాలికంగా డౌన్లోడ్ చేసి ఇన్స్టాల్ చేసి మీ రిక్వెస్ట్ పూర్తి అయిన వెంటనే స్వయంచాలకంగా క్లియర్ చేస్తుంది.

MCP ఇన్స్పెక్టర్ మీకు సహాయం చేస్తుంది:

  • సర్వర్ సామర్థ్యాలను కనుగొనండి: అందుబాటులో ఉన్న వనరులు, సాధనాలు, ప్రాంప్ట్‌లను ఆటోమేటిక్ గా గుర్తించండి
  • సాధన నిర్వాహణ పరీక్షించండి: వివిధ పారామితులు ప్రయోగించి ప్రత్యక్ష సమాధానాలు చూడండి
  • సర్వర్ మెటాడేటాను వీక్షించండి: సర్వర్ సమాచారం, స్కీమాలు మరియు కాన్ఫిగరేషన్‌లను పరిశీలించండి

ఒక సాధారణ రన్ ఈ విధంగా ఉంటుంది:

npx @modelcontextprotocol/inspector node build/index.js

పైన ఇచ్చిన కమాండ్ MCP మరియు దాని విజువల్ ఇంటర్‌ఫేస్‌ను ప్రారంభించి, బ్రౌజర్‌లో స్థానిక వెబ్ ఇంటర్‌ఫేస్‌ను లాంచ్ చేస్తుంది. మీరు డాష్‌బోర్డు చూస్తారు, ఇది నమోదు చేసిన MCP సర్వర్లను, అందుబాటులో ఉన్న సాధనాలు, వనరులు మరియు ప్రాంప్ట్‌లను చూపిస్తుంది. ఈ ఇంటర్‌ఫేస్ ద్వారా మీరు ఇంటరాక్టివ్ గా సాధనಗಳ కార్యాచరణను పరీక్షించుకోవచ్చు, సర్వర్ మెటాడేటాను పరిశీలించండి, ప్రత్యక్ష సమాధానాలను చూడండి, మీ MCP సర్వర్ అమలులను సులభంగా ధృవీకరిం చుకోవచ్చు మరియు డీబగ్గ్ చేసుకోవచ్చు.

ఇది ఎలా కనిపించవచ్చు అంటే: Inspector

మీరు ఈ టూల్‌ను CLI మోడ్‌లోను నడిపించవచ్చు, ఈ సందర్భంలో --cli అట్రిబ్యూట్ ఉపయోగించాలి. క్రింద చూపినది "CLI" మోడ్ లో టూల్‌ను నడిపి సర్వర్ యొక్క అన్ని సాధనాలను చూపించే ఉదాహరణ:

npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list

మాన్యువల్ పరీక్ష

సర్వర్ సామర్థ్యాలను పరీక్షించడానికి ఇన్స్పెక్టర్ టూల్ నడపడం తప్ప మరొక సమానమైన విధానం HTTP ఉపయోగించగల కస్టమర్ నడిపించడం, ఉదాహరణకు curl.

curl తో మీరు MCP సర్వర్లను నేరుగా HTTP రిక్వెస్ట్ లతో పరీక్షించవచ్చు:

# ఉదాహరణ: సర్వర్ మెటాడేటా పరీక్షించండి
curl http://localhost:3000/v1/metadata

# ఉదాహరణ: ఒక సాధనం నిర్వహించండి
curl -X POST http://localhost:3000/v1/tools/execute \
  -H "Content-Type: application/json" \
  -d '{"name": "calculator", "parameters": {"expression": "2+2"}}'

పై curl ఉపయోగం నుండి మీరు చూడగలిగే విధంగా, టూల్ పేరు మరియు దాని పరామితులు ఉంటే payload ఉపయోగించి POST రిక్వెస్ట్ ద్వారా టూల్‌ను ఆహ్వానిస్తారు. మీకు సౌకర్యవంతమైన విధానాన్ని ఉపయోగించండి. CLI టూల్‌లు సాధారణంగా వేగంగా ఉపయోగించడానికి ఉంటాయి మరియు స్క్రిప్ట్లుగా ఉపయోగించవచ్చు, ఇది CI/CD వాతావరణంలో ఉపయోగకరం కావచ్చు.

యూనిట్ పరీక్ష

మీ సాధనాలు మరియు వనరుల కోసం యూనిట్ టెస్టులు సృష్టించండి మరియు అవి కోరినట్లుగా పనిచేస్తున్నాయో లేదో నిర్ధారించండి. ఇక్కడ కొన్ని ఉదాహరణ టెస్టింగ్ కోడ్ ఇవ్వబడింది.

import pytest

from mcp.server.fastmcp import FastMCP
from mcp.shared.memory import (
    create_connected_server_and_client_session as create_session,
)

# అసింక్రో పరీక్షల కోసం మొత్తం మాడ్యూల్‌ని గుర్తించండి
pytestmark = pytest.mark.anyio


async def test_list_tools_cursor_parameter():
    """Test that the cursor parameter is accepted for list_tools.

    Note: FastMCP doesn't currently implement pagination, so this test
    only verifies that the cursor parameter is accepted by the client.
    """

 server = FastMCP("test")

    # కొన్ని పరీక్ష సాధనాలు సృష్టించండి
    @server.tool(name="test_tool_1")
    async def test_tool_1() -> str:
        """First test tool"""
        return "Result 1"

    @server.tool(name="test_tool_2")
    async def test_tool_2() -> str:
        """Second test tool"""
        return "Result 2"

    async with create_session(server._mcp_server) as client_session:
        # కర్సర్ ప్యారామీటర్ లేకుండా పరీక్ష (వదిలివేసింది)
        result1 = await client_session.list_tools()
        assert len(result1.tools) == 2

        # కర్సర్=None తో పరీక్ష
        result2 = await client_session.list_tools(cursor=None)
        assert len(result2.tools) == 2

        # స్ట్రింగ్‌గా కర్సర్‌తో పరీక్ష
        result3 = await client_session.list_tools(cursor="some_cursor_value")
        assert len(result3.tools) == 2

        # ఖాళీ స్ట్రింగ్ కర్సర్‌తో పరీక్ష
        result4 = await client_session.list_tools(cursor="")
        assert len(result4.tools) == 2
    

గత కోడ్ ఈ క్రింది విధంగా పనిచేస్తుంది:

  • ఫంక్షన్ లా టెస్టులు సృష్టించడానికి మరియు assert స్టేట్మెంట్లను ఉపయోగించడానికి pytest ఫ్రేమ్‌వర్క్‌ను ఉపయోగిస్తుంది.
  • రెండు వేర్వేరు సాధనాలతో MCP సర్వర్ సృష్టిస్తుంది.
  • నిర్దిష్ట పరిస్థితులు నెరవేరాయో లేదో పరీక్షించడానికి assert స్టేట్మెంట్ ఉపయోగిస్తుంది.

పూర్తి ఫైల్ ఇక్కడ చూడండి

పై ఫైల్ ఆధారంగా, మీరు మీ సర్వర్ సామర్థ్యాలు ప్రకారం సరిగ్గా ఏర్పడినట్లు పరీక్షించవచ్చు.

అన్ని ప్రధాన SDK లకు సమానమైన పరీక్షా విభాగాలు ఉంటాయి కనుక మీరు ఎంచుకున్న రన్‌టైమ్‌కు అనుగుణంగా సర్దుబాటు చేసుకోవచ్చు.

నమూనాలు

అదనపు ಸಂಪನ್ಮೂಲాలు

తదుపరి ఏమిటి


విమర్శ:
ఈ డాక్యుమెంట్ AI అనువాద సేవ Co-op Translator ఉపయోగించి అనువదించబడింది. మనం ఖచ్చితత్వానికి ప్రయత్నిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాలలో లోపాలు లేదా అపరిశుద్ధతలు ఉండవచ్చని గమనించండి. స్థానిక భాషలో ఉన్న అసలు డాక్యుమెంట్‌ను ప్రామాణిక వనరుగా పరిగణించాలి. గంభీరమైన సమాచారానికి, వృత్తిపరమైన మానవ అనువాదం సూచించబడుతుంది. ఈ అనువాదం వాడుక కారణంగా ఉద్భవించిన ఏమైనా తప్ప فهمాలు లేదా భ్రమలకు మేము బాధ్యత వహించము.