avr-docs-mcp

आधिकारिक

यह MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर एजेंट वॉइस रिस्पॉन्स Wiki.JS इंस्टेंस से पेजों को खोजने और सूचीबद्ध करने के लिए Wiki.JS के साथ एकीकरण प्रदान करता है।

Avr Docs MCP के साथ आप क्या कर सकते हैं?

  • कीवर्ड द्वारा विकी पेज खोजेंsearch_wiki_pages का उपयोग करके क्वेरी से मेल खाने वाले पेज ढूंढें, वैकल्पिक पेजिनेशन नियंत्रण के साथ।
  • सभी विकी पेज सूचीबद्ध करेंlist_wiki_pages के माध्यम से Wiki.JS इंस्टेंस से उपलब्ध पेजों की पेजिनेटेड सूची प्राप्त करें।
  • कोई विशिष्ट पेज प्राप्त करेंget_wiki_page का उपयोग करके किसी एक पेज की पूरी सामग्री उसके संख्यात्मक आईडी या पथ स्ट्रिंग द्वारा लाएं।
  • Wiki.JS कनेक्टिविटी का परीक्षण करें — सत्यापित करें कि सर्वर आपके Wiki.JS इंस्टेंस तक पहुंच सकता है और उसके विरुद्ध प्रमाणीकरण कर सकता है।

दस्तावेज़

AVR डॉक्स MCP सर्वर Wiki.JS एकीकरण के साथ

यह MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर आपके Wiki.JS इंस्टेंस से पेज खोजने और सूचीबद्ध करने के लिए Wiki.JS के साथ एकीकरण प्रदान करता है।

विशेषताएँ

  • Wiki.JS पेज खोजें: कीवर्ड या विषयों का उपयोग करके पेज खोजें
  • Wiki.JS पेज सूचीबद्ध करें: सभी उपलब्ध पेजों की पृष्ठांकित सूची प्राप्त करें
  • विशिष्ट पेज प्राप्त करें: किसी विशिष्ट पेज को उसकी ID द्वारा पुनर्प्राप्त करें
  • कनेक्शन परीक्षण: अपने Wiki.JS इंस्टेंस से कनेक्शन का परीक्षण करें
  • एकाधिक ट्रांसपोर्ट मोड: stdio और HTTP स्ट्रीम मोड दोनों के लिए समर्थन
  • डॉकर समर्थन: हेल्थ चेक के साथ उपयोग के लिए तैयार डॉकर इमेज

सेटअप

पूर्वापेक्षाएँ

  1. एक चालू Wiki.JS इंस्टेंस
  2. पेज पढ़ने के लिए उपयुक्त अनुमतियों वाली एक API कुंजी

एनवायरनमेंट वेरिएबल

आप एनवायरनमेंट वेरिएबल दो तरीकों से सेट कर सकते हैं:

विकल्प 1: .env फ़ाइल का उपयोग करना (अनुशंसित)

  1. उदाहरण एनवायरनमेंट फ़ाइल कॉपी करें:
cp .env.example .env
  1. .env फ़ाइल को अपने वास्तविक मानों के साथ संपादित करें:
# Wiki.JS Configuration
WIKI_JS_BASE_URL=https://your-wiki-instance.com
WIKI_JS_API_KEY=your-api-key-here
LOG_LEVEL=info

# MCP Server Configuration
MCP_MODE=stdio
PORT=3000

विकल्प 2: सिस्टम एनवायरनमेंट वेरिएबल का उपयोग करना

export WIKI_JS_BASE_URL="https://your-wiki-instance.com"
export WIKI_JS_API_KEY="your-api-key-here"
export LOG_LEVEL="info"
export MCP_MODE="stdio"
export PORT="3000"

इंस्टॉलेशन

  1. निर्भरताएँ इंस्टॉल करें:
npm install
  1. प्रोजेक्ट बिल्ड करें:
npm run build
  1. कनेक्शन का परीक्षण करें (वैकल्पिक):
npm test
  1. सर्वर चलाएँ:
npm start

विकास के लिए:

npm run dev

चलाने के मोड

सर्वर संचालन के दो मोड का समर्थन करता है:

Stdio मोड (डिफ़ॉल्ट)

सर्वर डिफ़ॉल्ट रूप से stdio मोड में चलता है, मानक इनपुट/आउटपुट के माध्यम से संचार करता है। यह पारंपरिक MCP मोड है।

npm start
# or
npm run start:http  # for HTTP mode
# or
MCP_MODE=stdio npm start

HTTP स्ट्रीम मोड

सर्वर HTTP मोड में भी चल सकता है, MCP संचार के लिए सर्वर-सेंट इवेंट्स (SSE) के साथ एक REST API प्रदान करता है।

npm run start:http
# or
MCP_MODE=http npm start

HTTP मोड में चलने पर, सर्वर प्रदान करता है:

  • हेल्थ चेक: GET /health - सर्वर स्थिति लौटाता है
  • MCP एंडपॉइंट: POST /mcp - JSON-RPC 2.0 का उपयोग करके MCP संचार एंडपॉइंट

HTTP मोड का परीक्षण

आप curl या Postman का उपयोग करके HTTP मोड का परीक्षण कर सकते हैं:

# Health check
curl http://localhost:3000/health

# Initialize MCP session
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": {
        "name": "curl-client",
        "version": "1.0.0"
      }
    }
  }'

# List available tools (use session ID from initialize response)
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "mcp-session-id: <session-id-from-initialize>" \
  -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'

# Call a tool (use session ID from initialize response)
curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "mcp-session-id: <session-id-from-initialize>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "search_wiki_pages",
      "arguments": {
        "query": "deepgram",
        "page": 1,
        "limit": 10
      }
    }
  }'

या अंतर्निहित परीक्षण क्लाइंट का उपयोग करें:

npm run test:http

डॉकर उपयोग

डॉकर इमेज का उपयोग करना

# Run in stdio mode (default)
docker run -d \
  --name avr-docs-mcp \
  -e WIKI_JS_BASE_URL="https://your-wiki-instance.com" \
  -e WIKI_JS_API_KEY="your-api-key-here" \
  agentvoiceresponse/avr-docs-mcp:latest

# Run in HTTP mode
docker run -d \
  --name avr-docs-mcp \
  -p 3000:3000 \
  -e WIKI_JS_BASE_URL="https://your-wiki-instance.com" \
  -e WIKI_JS_API_KEY="your-api-key-here" \
  -e MCP_MODE="http" \
  -e PORT="3000" \
  agentvoiceresponse/avr-docs-mcp:latest

डॉकर कम्पोज़

version: '3.8'

services:
  avr-docs-mcp:
    image: agentvoiceresponse/avr-docs-mcp:latest
    container_name: avr-docs-mcp
    ports:
      - "3000:3000"  # Only needed for HTTP mode
    environment:
      - WIKI_JS_BASE_URL=https://your-wiki-instance.com
      - WIKI_JS_API_KEY=your-api-key-here
      - MCP_MODE=http
      - PORT=3000
      - LOG_LEVEL=info
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

उपलब्ध उपकरण

1. search_wiki_pages

कीवर्ड का उपयोग करके Wiki.JS में पेज खोजें।

पैरामीटर:

  • query (आवश्यक): खोज क्वेरी
  • page (वैकल्पिक): पृष्ठांकन के लिए पेज नंबर (डिफ़ॉल्ट: 1)
  • limit (वैकल्पिक): प्रति पेज परिणामों की संख्या (डिफ़ॉल्ट: 10, अधिकतम: 50)

2. list_wiki_pages

Wiki.JS में सभी उपलब्ध पेजों को सूचीबद्ध करें।

पैरामीटर:

  • page (वैकल्पिक): पृष्ठांकन के लिए पेज नंबर (डिफ़ॉल्ट: 1)
  • limit (वैकल्पिक): प्रति पेज परिणामों की संख्या (डिफ़ॉल्ट: 20, अधिकतम: 50)

3. get_wiki_page

किसी विशिष्ट पेज को उसकी ID या पथ द्वारा प्राप्त करें।

पैरामीटर:

  • pageId (आवश्यक): पुनर्प्राप्त करने के लिए पेज की ID (संख्यात्मक) या पथ (स्ट्रिंग)। उदाहरण: ID के लिए '3', पथ के लिए 'deepgram'

Wiki.JS API कॉन्फ़िगरेशन

यह MCP सर्वर Wiki.JS GraphQL API (/graphql एंडपॉइंट) का उपयोग करता है। सुनिश्चित करें कि आपके Wiki.JS इंस्टेंस में API एक्सेस सक्षम है और आपकी API कुंजी के पास निम्नलिखित अनुमतियाँ हैं:

  • page:read - पेज सामग्री पढ़ने के लिए
  • page:list - पेज सूचीबद्ध करने के लिए
  • search:read - पेज खोजने के लिए

सर्वर सभी ऑपरेशनों के लिए GraphQL क्वेरीज़ और प्रतिक्रियाओं को स्वचालित रूप से संभालता है। ध्यान दें कि Wiki.JS GraphQL API की कुछ सीमाएँ हैं:

  • खोज और सूची संचालन मूल पृष्ठांकन का समर्थन नहीं करते, इसलिए पृष्ठांकन क्लाइंट-साइड सिम्युलेट किया जाता है
  • खोज परिणामों में पूर्ण पेज सामग्री शामिल नहीं होती
  • सूची परिणामों में पूर्ण पेज सामग्री शामिल नहीं होती (पूर्ण सामग्री के लिए get_wiki_page का उपयोग करें)
  • टैग स्ट्रिंग्स की सारणियों के रूप में लौटाए जाते हैं, कॉमा-पृथक स्ट्रिंग्स के रूप में नहीं

लॉगिंग

सर्वर में कॉन्फ़िगर करने योग्य लॉग स्तरों के साथ व्यापक लॉगिंग शामिल है:

  • debug - विस्तृत डिबग जानकारी
  • info - सामान्य जानकारी (डिफ़ॉल्ट)
  • warn - केवल चेतावनी संदेश
  • error - केवल त्रुटि संदेश

लॉगिंग वर्बोसिटी को नियंत्रित करने के लिए LOG_LEVEL एनवायरनमेंट वेरिएबल सेट करें।

त्रुटि प्रबंधन

सर्वर में निम्नलिखित के लिए व्यापक त्रुटि प्रबंधन शामिल है:

  • अनुपलब्ध एनवायरनमेंट वेरिएबल
  • नेटवर्क कनेक्टिविटी समस्याएँ
  • API प्रमाणीकरण विफलताएँ
  • अमान्य पेज IDs
  • दर सीमित करना

विकास

हॉट रीलोडिंग के साथ विकास मोड में चलाने के लिए:

npm run watch

बिल्डिंग

उत्पादन के लिए बिल्ड करने हेतु:

npm run build

संकलित जावास्क्रिप्ट dist/ निर्देशिका में होगी।

समर्थन और समुदाय

AVR का समर्थन करें

AVR मुफ़्त और ओपन-सोर्स है। कोई भी समर्थन पूरी तरह से स्वैच्छिक है और प्रशंसा के व्यक्तिगत संकेत के रूप में अभिप्रेत है। दान सुविधाओं, सेवाओं या विशेष लाभों तक पहुँच प्रदान नहीं करते हैं, और परियोजना दान की परवाह किए बिना पूरी तरह से उपलब्ध रहती है।

Support us on Ko-fi

लाइसेंस

MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें।