Docs Vector MCP
Docs Vector MCP
Vectorize GitHub tool documentation and provide MCP (Model Control Protocol) interface for AI Agents.
Features
π Auto-fetch from GitHub - Automatically crawls and extracts documentation from GitHub repositories
π§ Vector Embeddings - Uses OpenAI embeddings to store documentation in vector database
π Semantic Search - Find relevant documentation using natural language queries
π MCP Protocol - Standard Model Control Protocol interface for AI Agents
π¨ Modern Web UI - Built with Next.js 15 + TailwindCSS
Architecture
βββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββ
β GitHub Repo β β β Crawl Docs β β β Split Chunksβ β β Embedding β
βββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββ
β
ββββββββββββββββ
β Vector DB β β Query ββββββββββββ
β (Upstash) β β Result β AI Agent β
ββββββββββββββββ ββββββββββββ
β
βββββββββββββ
β MCP API β
βββββββββββββTech Stack
Framework: Next.js 15 + TypeScript + TailwindCSS
Vector Database: Upstash Vector (serverless, perfect for Cloudflare deployment)
Embeddings: OpenAI text-embedding-3-small
GitHub API: Octokit
MCP: @modelcontextprotocol/sdk
Environment Variables
Create a .env.local file:
# GitHub (optional but recommended for higher rate limits)
GITHUB_TOKEN=your_github_token
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Upstash Vector
UPSTASH_VECTOR_RESTAR_URL=your_upstash_vector_url
UPSTASH_VECTOR_RESTAR_TOKEN=your_upstash_vector_tokenGetting Started
Install dependencies
npm installRun development server
npm run devOpen http://localhost:3000 in your browser.
CLI Usage
Index a GitHub repository
npx tsx cli/index.ts index <owner> <repo> [branch]Example:
npx tsx cli/index.ts index openai openai-python mainSearch indexed documentation
npx tsx cli/index.ts search "how to use embeddings"Show statistics
npx tsx cli/index.ts statsClear all indexed documents
npx tsx cli/index.ts clearStart MCP server (for AI Agent connection)
npx tsx cli/index.ts mcpMCP Integration
Add this configuration to your AI Agent that supports MCP:
{
"mcpServers": {
"docs-vector": {
"command": "node",
"args": [
"path/to/docs-vector-mcp/dist/cli/index.js",
"mcp"
],
"env": {
"OPENAI_API_KEY": "<your-openai-api-key>",
"UPSTASH_VECTOR_RESTAR_URL": "<your-upstash-url>",
"UPSTASH_VECTOR_RESTAR_TOKEN": "<your-upstash-token>"
}
}
}
}Available MCP Tools
search_docs- Search documentation semanticallyParameters:
query(string): The search querylimit(number, optional): Maximum number of results (1-20, default 5)
get_stats- Get statistics about stored documentationNo parameters
Deployment
Cloudflare Pages
This project is optimized for Cloudflare Pages deployment:
Push your code to GitHub
Connect your repository to Cloudflare Pages
Set build command:
npm install && npx next buildSet output directory:
.nextAdd all environment variables in Cloudflare dashboard
Deploy!
CI/CD with GitHub Actions
A sample workflow is included in .github/workflows/deploy.yml that automatically deploys to Cloudflare Pages on every push to main branch.
Project Structure
docs-vector-mcp/
βββ app/ # Next.js app router
β βββ api/ # API routes
β β βββ index/ # Indexing endpoint
β β βββ search/ # Search endpoint
β β βββ stats/ # Stats endpoint
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ components/ # React components
β βββ IndexForm.tsx # Repository indexing form
β βββ SearchForm.tsx # Search form
βββ lib/ # Core libraries
β βββ github.ts # GitHub fetcher
β βββ text-processor.ts # Text chunking
β βββ embedding.ts # Embedding generator
β βββ vector-store.ts # Vector storage
β βββ mcp-server.ts # MCP server
β βββ docs-service.ts # Service orchestrator
βββ cli/ # CLI entry
β βββ index.ts # CLI main
βββ .github/
β βββ workflows/ # GitHub Actions
βββ next.config.ts # Next.js config
βββ tailwind.config.ts # Tailwind config
βββ package.json # DependenciesHow It Works
Add Repository: You input a GitHub repository that contains tool documentation
Crawling: The system fetches all documentation files (.md, .mdx, .rst, .txt, etc.) from the repo
Processing: Text is cleaned and split into overlapping chunks
Embedding: OpenAI generates vector embeddings for each chunk
Storage: Vectors are stored in Upstash Vector database
Search: When an AI Agent asks a question, the query is embedded and similar documents are retrieved
Response: Relevant documentation snippets are returned to the AI Agent for answering
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MeteorGeminy/docs-vector-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server