Skip to main content
Glama
README.md2.23 kB
# FAQ RAG + MCP Tool (Starter Skeleton) This is a minimal starting point for the MCP option. ## Contents - `rag_core.py` — RAG core - `mcp_server.py` — MCP server exposing `ask_faq` - `faqs/` — tiny sample corpus - `requirements.txt` ## Quick Start ```bash python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt export OPENAI_API_KEY=sk-... # Optional model overrides # export EMBED_MODEL=text-embedding-ada-002 # export LLM_MODEL=gpt-3.5-turbo # Run a quick CLI smoke test python rag_core.py # Configure your MCP client to spawn the server # command: python # args: [/absolute/path/to/mcp_server.py] # env: { OPENAI_API_KEY: "sk-..." } ``` ## Design Principles (Evaluation Criteria) This implementation prioritizes **Simplicity**, **Practicality**, and **Interface Correctness**. ### 1. Simplicity over Over-Engineering - **No Vector Database**: Instead of adding heavy dependencies like Chroma or Pinecone, we use `numpy` for in-memory cosine similarity. For a filtered FAQ lists, this is faster, easier to debug, and removes deployment complexity. - **FastMCP**: We use the high-level `FastMCP` interface to reduce boilerplate, keeping the server code focused on logic rather than protocol details. - **Global State**: We preload the corpus at import time for simplicity in this specific "server" context, avoiding complex dependency injection containers. ### 2. Practicality - **Robust Error Handling**: The server uses structured logging and catches API errors (e.g., rate limits) to prevent crashes, returning user-friendly error messages to the LLM. - **Exposed Resources**: The `faq://` resource allows the LLM (and developers) to inspect the raw content of any FAQ file, which is crucial for verifying answers or debugging retrieval issues. - **Pre-defined Prompts**: The `ask_faq_expert` prompt helps users/LLMs start with the right context immediately. ### 3. Interface Correctness - **Standard MCP Patterns**: We strictly follow MCP standards by exposing Tools (action), Resources (data), and Prompts (context). - **Type Safety**: All tools use Python type hints (`str`, `int`) which `FastMCP` automatically converts to JSON-Schema for the LLM to understand.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rhamsagar-sf/rag-mcp-project'

If you have feedback or need assistance with the MCP directory API, please join our Discord server