mcp-server
A generic, modular server for implementing the Model Context Protocol (MCP).
Install / Use
claude mcp add profullstack -- npx -y github:profullstack/mcp-serverIf the server publishes to npm under a different name, use that package instead ā check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of mcp-server
mcp-server scores 84/100 on our quality scale, 2804th of 4,613 Development & Engineering skills we index.
Its MCP Server is 17 KB long, well organised into 67 sections with 21 code examples: a thorough specification that gives an agent plenty to work with.
It has 45 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 4 days ago, so mcp-server is actively maintained.
- Our last check on 2026-09-28 found the source still online.
- It is released under the ISC license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit ā read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk ā read a skill before letting an agent act on it.
mcp-server compared with similar skills
All 4 of these similar skills score higher than mcp-server; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| mcp-server (this skill)by profullstack | 84 | 45 | 4d ago | MCP Server |
| taste-skillby Leonxlnx | 100 | 110.6k | 1d ago | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 109.2k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.9k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 69.8k | today | CLAUDE.md |
Frequently asked questions
- How do I install mcp-server?
- Run
claude mcp add profullstack -- npx -y github:profullstack/mcp-server. The install tabs above show the steps for each supported agent. - Which AI agents does mcp-server work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is mcp-server safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is ISC-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is mcp-server still maintained?
- The repository was last updated 4 days ago, so mcp-server is actively maintained.
Skill content
View source on GitHubMCP Server (Model Context Protocol)
<!-- readme-badges:start --> <!-- readme-badges:end -->A generic, modular server for implementing the Model Context Protocol (MCP). This server provides a framework for controlling and interacting with various models through a standardized API.
Hosted deployment
A hosted deployment is available on Fronteir AI.
Features
- Modular architecture for easy extension
- Dynamic module loading
- Core model management functionality
- Standardized API for model context
- Simple configuration system
- Logging utilities
- Enhanced module structure with proper separation of concerns
- Package.json support for modules with dependency management
- Comprehensive testing infrastructure with Mocha and Chai
- Powerful module search functionality
- Module metadata display in API responses
- Integration with real AI model providers (OpenAI, Stability AI, Anthropic, Hugging Face)
- Support for text generation, image generation, and speech-to-text models
- Streaming inference support for compatible models
Getting Started
Prerequisites
- Node.js 18.x or higher
- pnpm 10.x or higher
This project uses ES Modules (ESM) exclusively. All imports use the import syntax rather than require().
Installation
# Clone the repository
git clone https://github.com/yourusername/mcp-server.git
cd mcp-server
# Install dependencies
pnpm install
Running the Server
# Install dependencies
pnpm install
# Start the server
pnpm start
# Start the server in development mode (with auto-reload)
pnpm dev
The server will start on http://localhost:3000 by default.
Configuration
Copy the sample environment file and edit it with your API keys:
# Copy the sample environment file
cp sample.env .env
# Edit the file with your favorite editor
nano .env
At minimum, you'll need to add API keys for the model providers you want to use:
# OpenAI API (for GPT-4 and Whisper)
OPENAI_API_KEY=your_openai_api_key_here
# Stability AI API (for Stable Diffusion)
STABILITY_API_KEY=your_stability_api_key_here
# Anthropic API (for Claude models)
ANTHROPIC_API_KEY=your_anthropic_api_key_here
You can get these API keys from:
- OpenAI: https://platform.openai.com/api-keys
- Stability AI: https://platform.stability.ai/account/keys
- Anthropic: https://console.anthropic.com/settings/keys
Security
The server has no global authentication layer, so anything that can reach the port can call any module route. Modules that touch the filesystem or issue outbound requests are constrained as follows.
Module tokens. Routes with side effects accept a token via
Authorization: Bearer <token> or X-API-Key: <token>. When the variable is
unset the routes stay open and a warning is logged at startup.
| Variable | Guards |
| ------------------------- | ------------------------------------------------------------------------ |
| SCANNER_API_TOKEN | /scanner/scan, /scanner/reports/:id/export, /tools/scanner |
| README_BADGES_API_TOKEN | /readme-badges/update, /readme-badges/detect, /tools/readme-badges |
Path containment. readme-badges resolves readmePath and rootDir
against README_BADGES_ROOT (default: the working directory) and refuses
anything that escapes it, targets a non-markdown file, or reaches outside via a
symlink. scanner confines exports to its reports directory the same way.
Outbound request allowlists. Modules that fetch caller-named URLs reject loopback, link-local (cloud metadata), RFC1918, CGNAT and other non-public addresses, resolve hostnames and check every returned address, and re-validate each redirect hop. Where a module talks to one known service, the host is also allowlisted:
| Variable | Extends the allowlist for |
| --------------------------- | ---------------------------------------------------- |
| CONVERT2DOC_ALLOWED_HOSTS | convert2doc baseUrl (default: convert2doc.com) |
| CRAIGSLIST_ALLOWED_HOSTS | /craigslist/details (default: *.craigslist.org) |
Cross-origin requests. CSRF_PROTECTION_ENABLED (default true) rejects
state-changing requests that carry a foreign Origin header, so a malicious web
page cannot drive a browser at a localhost-bound server. Clients that send no
Origin ā curl, MCP clients, server-to-server calls ā are unaffected. List
trusted browser origins in CORS_ORIGINS.
Run the server behind an authenticating reverse proxy if it is exposed beyond localhost.
Testing the Server
The repository includes comprehensive testing using Mocha and Chai:
# Run all tests
pnpm test
# Run only module tests
pnpm test:modules
# Run all tests (both core and modules)
pnpm test:all
The testing infrastructure includes:
- Core server tests for module loading, routing, and other core functionality
- Module-specific tests for each module's functionality
- Support for ES modules in tests
- Mocking and stubbing utilities with Sinon
Tests are organized in a structured way:
- Core tests in
/test/core/ - Module tests in each module's
test/directory
This comprehensive testing ensures code quality and makes it easier to detect regressions when making changes.
Pre-commit Hooks
The repository includes pre-commit hooks using Husky and lint-staged:
# The hooks are automatically installed when you run
pnpm install
The pre-commit hooks:
- Run ESLint on JavaScript files
- Run Prettier on all staged files
This ensures that all code committed to the repository follows coding standards and maintains code quality. The test suite is continuously being improved to provide better coverage and reliability, and will be enabled in the pre-commit hook once it's more stable.
Docker Support
The repository includes Docker support for easy containerization and deployment:
# Build and run with Docker
docker build -t mcp-server .
docker run -p 3000:3000 mcp-server
# Or use Docker Compose
docker-compose up
The Docker configuration:
- Uses Node.js 20 Alpine as the base image
- Exposes port 3000
- Mounts the modules directory as a volume for easy module management
- Includes health checks
Standard MCP Methods
The MCP server implements a standardized set of methods that all MCP servers should provide:
Server Information
GET /- Basic server informationGET /status- Detailed server statusGET /health- Health check endpointGET /metrics- Server metrics
Model Management
GET /models- List available modelsGET /model/:modelId- Get model informationPOST /model/:modelId/activate- Activate a specific modelPOST /model/deactivate- Deactivate the current modelGET /model/active- Get information about the active model
Inference
POST /model/infer- Perform inference with the active modelPOST /model/:modelId/infer- Perform inference with a specific model
Supported Models
The MCP server supports the following model types:
| Model Type | Provider | Capabilities | Example IDs | | ---------------- | ------------ | ---------------- | ------------------------------ | | GPT Models | OpenAI | Text generation | gpt-4, gpt-3.5-turbo | | Whisper | OpenAI | Speech-to-text | whisper, whisper-1 | | Stable Diffusion | Stability AI | Image generation | stable-diffusion-xl-1024-v1-0 | | Claude Models | Anthropic | Text generation | claude-3-opus, claude-3-sonnet | | Custom Models | Hugging Face | Various | (any Hugging Face model ID) |
Inference Examples
Text generation with GPT-4:
# Activate the model
curl -X POST http://localhost:3000/model/gpt-4/activate \
-H "Content-Type: application/json" \
-d '{"config": {"temperature": 0.7}}'
# Perform inference
curl -X POST http://localhost:3000/model/infer \
-H "Content-Type: application/json" \
-d '{
"prompt": "Explain quantum computing in simple terms",
"temperature": 0.5,
"max_tokens": 200
}'
Image generation with Stable Diffusion:
# Activate the model
curl -X POST http://localhost:3000/model/stable-diffusion/activate \
-H "Content-Type: application/json" \
-d '{}'
# Generate an image
curl -X POST http://localhost:3000/model/infer \
-H "Content-Type: application/json" \
-d '{
"prompt": "A beautiful sunset over mountains",
"height": 1024,
"width": 1024,
"steps": 30
}'
Streaming text generation:
# Enable streaming
curl -X POST http://localhost:3000/model/infer \
-H "Content-Type: application/json" \
-d '{
"prompt": "Write a short story about a robot",
"stream": true
}'
Module Management
GET /modules- List installed modulesGET /modules/:moduleId- Get module informationGET /modules/search/:query- Search modules by any field in their package.json or metadata
Tools and Resources
GET /tools- List available toolsGET /resources- List available resources
For detailed information about these methods, see MCP Standard Methods.
Configuration
Configuration is loaded from environment variables and stored in src/core/config.js. The easiest way to configure the server is to edit the .env file in the project root.
Environment Variables
Key environment variables include:
| Variable | Description | Default | | ------------------- | ------------------------------------ | ---------------------------------- | | PORT | Server port | 3000 | | HOST | Server host | localhost | | NODE_ENV | Environment (development/production) | development | | OPENAI_API_KEY | OpenAI API key | (required for OpenAI models) | | STABILITY_API_KEY | Stability AI API key | (required for Stable Diffusion) | | ANTHROPIC_API_KEY | Anthropic API key | (required for Claude models) | | HUGGINGFACE_API_KEY | Hugging Face API key | (required for Hugging Face models) |
See sample.env for a complete list of configuration options.
Examples
The repository includes several examples to help you get started:
- Client Example:
examples/client.jsdemonstrates how to interact with the MCP server from a client application. - Custom Module Example:
examples/custom-module/shows how to create a custom module that adds a calculator tool to the server.
To run the client example:
node examples/client.js
To use the custom module example, copy it to the modules directory:
cp -r examples/custom-module mcp_modules/calculator
Creating Modules
Modules are the primary way to extend the MCP server. Each module is a self-contained package that can add new functionality to the server.
Module Structure
Modules now follow an enhanced structure with better organization:
mcp_modules/your-module/
āāā assets/ # Static assets (images, CSS, etc.)
āāā docs/ # Documentation files
āāā examples/ # Example usage
āāā src/ # Source code
ā āāā controller.js # HTTP route handlers
ā āāā service.js # Business logic
ā āāā utils.js # Utility functions
āāā test/ # Te
Truncated for display ā read the full file on GitHub.
Related Skills
taste-skill
110.6kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
109.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu ā one CLI, zero API fees.
headroom
78.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
69.8kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit ā see the Safety scan above for what the skill file itself contains.
