knowledge-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@knowledge-mcp-serversummarize Wikipedia article on Artificial Intelligence"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Knowledge MCP Server
A high-performance Model Context Protocol (MCP) server that aggregates multiple knowledge sources into a unified interface for AI agents and applications.
๐ฏ Features
Multi-Source Knowledge Aggregation โ Unified access to 4 powerful knowledge sources
Production-Ready โ Built-in rate limiting, caching, and structured logging
High Performance โ In-memory caching reduces API calls by up to 80%
API Compliant โ Respects rate limits for all external APIs
Configurable โ Environment-based configuration for all features
Type-Safe โ Full TypeScript implementation with strict typing
Related MCP server: Synapse
๐ Knowledge Sources
Source | Description | Rate Limit | Cache TTL |
Context7 | Up-to-date library & framework documentation | 60 req/hour (free tier) | Configurable |
Wikipedia | General knowledge & encyclopedic content | 70 req/s | 15 minutes |
arXiv | Academic papers & research publications | 1 req/3s | 10-15 minutes |
DevDocs | Developer documentation for popular libraries | 5 req/s | 15-30 minutes |
โ ๏ธ DevDocs Disclaimer: The DevDocs integration uses an unofficial API and is not affiliated with or endorsed by DevDocs.io. It may break if the site's structure changes. We'll endeavor to update it promptly, but use in production at your own discretion.
๐ฆ Installation
Prerequisites
Node.js >= 18.0.0
npm or yarn
npx (usually comes with Node.js)
Quick Start
# Clone the repository
git clone https://github.com/Maouv/knowledge-mcp-server.git
cd knowledge-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm startThe server will start at http://localhost:3000/mcp by default.
โ๏ธ Configuration
Create a .env file in the project root (or copy from .env.example):
cp .env.example .envCore Configuration
# Server Configuration
PORT=3000 # Server port (default: 3000)
TRANSPORT=http # Transport mode: 'http' or 'stdio'
# User-Agent (Required by some APIs)
USER_AGENT=knowledge-mcp-server/2.0.0 (your-contact@example.com)
# Logging
LOG_LEVEL=info # Levels: error, warn, info, debug
# Rate Limiting
RATE_LIMIT_ENABLED=true # Enable/disable rate limiting
RATE_LIMIT_WIKIPEDIA=70 # Requests per second
RATE_LIMIT_ARXIV=0.33 # 1 request per 3 seconds
RATE_LIMIT_CONTEXT7=60 # Requests per hour
RATE_LIMIT_DEVDOCS=5 # Requests per second
# Caching
CACHE_ENABLED=true # Enable/disable caching
CACHE_TTL=600 # Default cache TTL in secondsEnvironment Variables Reference
Variable | Type | Default | Description |
| number |
| HTTP server port |
| string |
| Transport mode ( |
| string | (required) | User agent for API requests |
| string |
| Logging verbosity level |
| boolean |
| Enable rate limiting |
| number |
| Wikipedia requests per second |
| number |
| arXiv requests per second |
| number |
| Context7 requests per hour |
| number |
| DevDocs requests per second |
| boolean |
| Enable response caching |
| number |
| Default cache TTL (seconds) |
๐ Usage
HTTP Mode (Recommended)
Start the server:
npm start
# or with custom port
PORT=8080 npm startConnect to your MCP client:
{
"mcpServers": {
"knowledge": {
"url": "http://localhost:3000/mcp"
}
}
}Stdio Mode
For local development or subprocess usage:
TRANSPORT=stdio npm startClient configuration:
{
"mcpServers": {
"knowledge": {
"command": "node",
"args": ["/path/to/knowledge-mcp-server/dist/index.js"],
"env": { "TRANSPORT": "stdio" }
}
}
}๐ง Available Tools
Wikipedia Tools
wikipedia_summary
Get a summary of a Wikipedia article by title.
Arguments:
title(string): Article title (e.g., "JavaScript", "Machine learning")
Example:
{
"title": "React (software)"
}wikipedia_search
Search Wikipedia articles.
Arguments:
query(string): Search querylimit(number, optional): Number of results (1-20, default: 5)
wikipedia_related
Get related articles linked from a Wikipedia article.
Arguments:
title(string): Article title
arXiv Tools
arxiv_search
Search academic papers on arXiv.
Arguments:
query(string): Search querylimit(number, optional): Number of results (1-20, default: 5)category(string, optional): arXiv category filter (e.g., "cs.AI", "cs.LG")
Example:
{
"query": "large language models",
"category": "cs.CL",
"limit": 10
}arxiv_get_paper
Get full details of a specific paper.
Arguments:
paperId(string): arXiv paper ID or URL
Context7 Tools
context7_resolve_library
Resolve a library name to its Context7-compatible ID.
Arguments:
libraryName(string): Library name (e.g., "react", "nextjs")
context7_get_docs
Fetch up-to-date documentation for a library.
Arguments:
libraryId(string): Context7 library ID (fromcontext7_resolve_library)topic(string, optional): Specific topic to focus ontokens(number, optional): Max tokens to return (1000-10000, default: 5000)
DevDocs Tools
devdocs_list
List all available documentation sets.
devdocs_search
Search within a documentation set.
Arguments:
slug(string): Documentation slug (e.g., "react", "node")query(string): Search termlimit(number, optional): Max results (1-30, default: 10)
devdocs_get_page
Fetch full page content.
Arguments:
slug(string): Documentation slugpath(string): Page path from search results
๐ Example Workflows
Finding React Documentation
# 1. List available docs
devdocs_list()
# 2. Search for hooks
devdocs_search(slug: "react", query: "useState")
# 3. Get the full page
devdocs_get_page(slug: "react", path: "hooks/use-state")Researching Machine Learning Papers
# 1. Search arXiv
arxiv_search(query: "transformer architectures", category: "cs.LG", limit: 5)
# 2. Get specific paper details
arxiv_get_paper(paperId: "2301.00001")Learning About a Concept
# 1. Get Wikipedia overview
wikipedia_summary(title: "Artificial neural network")
# 2. Find related concepts
wikipedia_related(title: "Artificial neural network")
# 3. Search for research papers
arxiv_search(query: "neural networks")๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Knowledge MCP Server โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ Wikipediaโ โ arXiv โ โ Context7 โ โ
โ โ Service โ โ Service โ โ Service โ โ
โ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โ
โ โ โ โ โ
โ โโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโ
โ โ Rate Limiter (Bottleneck) โโ
โ โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ โ Cache Layer (node-cache) โโ
โ โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ โ Logging (Winston) โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ก๏ธ Rate Limiting
This server implements respectful rate limiting for all external APIs to ensure compliance and reliability:
Wikipedia
Official Limit: ~200 requests/second
Server Default: 70 requests/second (safe buffer)
Reasoning: Conservative approach to avoid throttling
arXiv
Official Limit: 1 request per 3 seconds
Server Default: Strict 1 request per 3 seconds
Reasoning: arXiv has very strict limits; violations may result in IP bans
Context7
Free Tier Limit: 60 requests/hour
Server Default: 60 requests/hour
Paid Plans: Configurable via
RATE_LIMIT_CONTEXT7env varReasoning: Matches Upstash free tier quota
DevDocs
Official Limit: Not officially documented (unofficial API)
Server Default: 5 requests/second
Reasoning: Conservative to avoid service disruption
Behavior
When rate limits are reached:
Requests are automatically queued
No errors are thrown
Logs warn when approaching limits
Requests execute when capacity is available
To disable rate limiting (not recommended for production):
RATE_LIMIT_ENABLED=false๐๏ธ Caching Strategy
The server uses in-memory caching to reduce API calls and improve response times:
Source | Cache TTL | Reasoning |
Wikipedia Summaries | 15 minutes | Content rarely changes rapidly |
arXiv Search | 10 minutes | Papers don't change after publication |
arXiv Papers | 15 minutes | Static content |
DevDocs List | 1 hour | Documentation index rarely changes |
DevDocs Search | 15 minutes | Reasonable balance |
DevDocs Pages | 30 minutes | Documentation rarely updates frequently |
Context7 | Configurable | Depends on use case |
Cache statistics available programmatically:
import { getCacheStats } from './cache.js';
const stats = getCacheStats();
// { keys: 45, hits: 1234, misses: 56 }To disable caching:
CACHE_ENABLED=false๐ Logging
Structured logging via Winston with multiple log levels:
# Development (verbose)
LOG_LEVEL=debug npm start
# Production (standard)
LOG_LEVEL=info npm start
# Minimal
LOG_LEVEL=error npm startAll logs are written to stderr (stdout is reserved for MCP protocol).
Example log output:
2024-01-15 10:23:45 [info]: knowledge-mcp-server running on http://localhost:3000/mcp
2024-01-15 10:23:50 [info]: Rate limiting enabled {"wikipedia":"70 req/s","arxiv":"0.33 req/s"}
2024-01-15 10:24:01 [info]: Searching arXiv {"query":"transformers","limit":5}๐ Health Check
Check server health:
curl http://localhost:3000/healthResponse:
{
"status": "ok",
"server": "knowledge-mcp-server",
"version": "2.0.0",
"tools": ["wikipedia", "context7", "arxiv", "devdocs"]
}๐งช Development
Build
npm run buildDevelopment Mode
npm run devProject Structure
knowledge-mcp-server/
โโโ src/
โ โโโ index.ts # Entry point
โ โโโ constants.ts # Configuration constants
โ โโโ types.ts # TypeScript type definitions
โ โโโ logger.ts # Winston logger setup
โ โโโ cache.ts # In-memory caching layer
โ โโโ rateLimiter.ts # Rate limiting logic
โ โโโ services/ # External API integrations
โ โ โโโ wikipedia.ts
โ โ โโโ arxiv.ts
โ โ โโโ context7.ts
โ โ โโโ devdocs.ts
โ โโโ tools/ # MCP tool definitions
โ โโโ wikipedia.ts
โ โโโ arxiv.ts
โ โโโ context7.ts
โ โโโ devdocs.ts
โโโ dist/ # Compiled JavaScript
โโโ package.json
โโโ tsconfig.json
โโโ .env.example
โโโ README.md๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
Code Style
TypeScript with strict mode
ES Modules (ESM)
Async/await for asynchronous operations
Meaningful variable and function names
Comprehensive error handling
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Model Context Protocol by Anthropic
Context7 by Upstash
DevDocs (unofficial API)
๐ฎ Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Built with โค๏ธ for the AI community
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/Maouv/knowledge-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server