Skip to main content
Glama

Context7 MCP Clone - Up-to-Date Code Documentation for LLMs

A production-ready clone of Context7 MCP that provides up-to-date, version-specific documentation and code examples directly to LLMs and AI code editors.

🎯 Project Status

Phase 2 Complete: Core MCP Server and Backend API ready for development!

Completed Components

  • βœ… pnpm monorepo with workspace configuration

  • βœ… Docker Compose development and production environments

  • βœ… PostgreSQL database schema with migrations

  • βœ… NestJS backend API with authentication

  • βœ… Library and documentation services

  • βœ… MCP server with both tools (resolve-library-id, get-library-docs)

  • βœ… Stdio and HTTP transports for MCP protocol

In Progress

  • πŸš€ Rate limiting with Redis

  • πŸš€ Crawler engine with GitHub API and web scraping

  • πŸš€ Markdown and HTML parsing with code extraction

  • πŸš€ Next.js web UI with Grafana theme

πŸ“¦ Project Structure

atamai-mcp/ β”œβ”€β”€ packages/ β”‚ β”œβ”€β”€ mcp-server/ # MCP Protocol Server β”‚ β”œβ”€β”€ backend-api/ # NestJS REST API β”‚ β”œβ”€β”€ crawler-engine/ # Documentation Crawler β”‚ └── web-ui/ # Next.js Frontend β”œβ”€β”€ docker/ # Container configurations β”œβ”€β”€ scripts/ # Utility scripts β”œβ”€β”€ docker-compose.yml # Production compose β”œβ”€β”€ docker-compose.dev.yml # Development compose β”œβ”€β”€ PLAN.md # Detailed implementation plan β”œβ”€β”€ TODO.md # Task checklist └── README.md # This file

πŸš€ Quick Start

Prerequisites

  • Node.js 20+

  • pnpm 8+

  • Docker & Docker Compose

  • PostgreSQL 16+ (or use docker-compose)

Development Setup

  1. Clone and install dependencies

cd /Users/atamai/develope/atamai-mcp pnpm install
  1. Set up environment

cp .env.example .env # Edit .env with your configuration
  1. Start development environment with Docker

docker-compose -f docker-compose.dev.yml up

This starts:

  • PostgreSQL database on port 5432

  • Redis cache on port 6379

  • Backend API on port 5000

  • MCP Server on port 3000

  • Web UI on port 4000

  1. Run migrations

# Migrations run automatically when backend starts # Or manually run: cd packages/backend-api pnpm run migration:run

πŸ“š MCP Server

Tools Available

1. resolve-library-id

Converts a library name to Context7-compatible ID and returns ranked results.

Input:

{ "libraryName": "react" }

Output:

{ "libraries": [ { "id": "/facebook/react", "name": "React", "description": "A JavaScript library for building user interfaces", "ecosystem": "javascript", "stars": 220000, "benchmarkScore": 98, "reputation": "high", "codeSnippets": 15420 } ], "selected": "/facebook/react", "reasoning": "Exact name match with highest benchmark score" }

2. get-library-docs

Retrieves version-specific documentation and code examples.

Input:

{ "context7CompatibleLibraryID": "/facebook/react", "topic": "hooks", "page": 1, "mode": "code" }

Output:

{ "libraryId": "/facebook/react", "library": { "name": "React", "full_name": "facebook/react", "ecosystem": "javascript" }, "version": "18.2.0", "topic": "hooks", "page": 1, "totalPages": 5, "documentation": [ { "title": "Using the State Hook", "type": "guide", "content": "...", "codeExamples": [ { "language": "javascript", "code": "const [count, setCount] = useState(0);", "description": "Basic useState example" } ], "url": "https://react.dev/reference/react/useState" } ] }

Running MCP Server

Stdio Mode (for Claude Desktop, Cursor, etc.)

cd packages/mcp-server pnpm start # Or with hot reload: pnpm dev

HTTP Mode

MCP_TRANSPORT=http MCP_SERVER_PORT=3000 pnpm start # Access SSE endpoint at: http://localhost:3000/mcp/sse

πŸ”Œ Backend API

Authentication

Register

POST /api/v1/auth/register Content-Type: application/json { "email": "user@example.com", "password": "SecurePassword123!" }

Login

POST /api/v1/auth/login Content-Type: application/json { "email": "user@example.com", "password": "SecurePassword123!" }

Libraries

Search Libraries

GET /api/v1/libraries?query=react&ecosystem=javascript&page=1&limit=20 Authorization: Bearer <jwt_token>

Get Library by ID

GET /api/v1/libraries/{id} Authorization: Bearer <jwt_token>

Get Available Ecosystems

GET /api/v1/libraries/ecosystems Authorization: Bearer <jwt_token>

Documentation

Get Documentation

GET /api/v1/docs/{libraryId}?topic=hooks&page=1&mode=code Authorization: Bearer <jwt_token>

Search Documentation

GET /api/v1/docs/search/{query} Authorization: Bearer <jwt_token>

Swagger Documentation

Once the backend is running, visit:

http://localhost:5000/docs

πŸ“Š Database Schema

Core Tables

  • users - User accounts with tier system

  • api_keys - API key management with rate limits

  • libraries - Library metadata

  • library_versions - Version tracking

  • documentation_pages - Documentation content with full-text search

  • code_examples - Code snippets

  • crawl_jobs - Crawler job tracking

  • api_usage - Usage analytics

Features

  • Full-text search on documentation

  • Trigram similarity for fuzzy matching

  • JSONB metadata support

  • Automatic tsvector updates

  • Materialized views for popular libraries

πŸ”„ Deployment

Production Docker Compose

docker-compose up -d

Environment Variables

See .env.example for all available options:

  • DATABASE_URL - PostgreSQL connection string

  • REDIS_URL - Redis connection string

  • JWT_SECRET - JWT signing key

  • NODE_ENV - production/development

  • API_PREFIX - API base path (default: /api/v1)

Kubernetes Deployment

Deploy manifests are in the plan for Phase 8.

πŸ“ˆ Development Roadmap

Phase 3: Crawler Engine (Weeks 5-6)

  • BullMQ job queue setup

  • GitHub crawler with Octokit

  • Documentation site scraper

  • Markdown/HTML parsers

  • Code extraction engine

Phase 4: Web UI (Weeks 7-8)

  • Next.js 15 setup with App Router

  • Landing page with purple gradient theme

  • Documentation browser

  • Authentication pages

Phase 5: Dashboard & Admin (Weeks 9-10)

  • User dashboard

  • API key management

  • Admin panel

  • Analytics and charts

Phase 6-10: Completion & Launch

  • Data seeding

  • Testing & optimization

  • Production deployment

  • Beta & public launch

πŸ§ͺ Testing

# Run tests for all packages pnpm test # Run tests with coverage pnpm test:cov # Watch mode pnpm test:watch

πŸ“ Code Style

# Format code pnpm format # Check formatting pnpm format:check # Lint pnpm lint # Type check pnpm type-check

πŸ› Debugging

Backend API

DEBUG=* pnpm dev

MCP Server

DEBUG=* pnpm dev

Docker Logs

docker-compose -f docker-compose.dev.yml logs -f [service-name]

πŸ“– Documentation

  • PLAN.md - Comprehensive implementation plan with architecture

  • TODO.md - Detailed task checklist for all phases

  • API Docs - Available at http://localhost:5000/docs (Swagger)

🀝 Contributing

This is a solo development project. Please follow:

  • TypeScript strict mode

  • ESLint configuration

  • Prettier formatting

  • 80%+ test coverage

πŸ“„ License

MIT

🎯 Key Metrics (Target)

  • Performance: MCP response <200ms (p95)

  • Search: <100ms (p95)

  • Uptime: 99.9%

  • Coverage: 100+ libraries by month 6

  • Users: 1000+ registered by month 3


Next Steps

  1. Run docker-compose -f docker-compose.dev.yml up

  2. Wait for migrations to complete

  3. Visit http://localhost:5000/docs for API documentation

  4. Start using the MCP server with Claude Desktop or Cursor

  5. Reference PLAN.md for detailed architecture and TODO.md for task tracking

-
security - not tested
F
license - not found
-
quality - not tested

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/aiatamai/atamai-mcp'

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