Overview
Strata is a unified MCP server that intelligently manages any tool across one or multiple applications, presenting them to AI agents progressively without overwhelming the model context.
[!TIP] 🚀 Looking for production-ready solution? We offer a fully managed Strata service with enterprise-grade performance, access to more features and advanced AI model optimizations. Get started instantly →
This repository contains our open-source implementation - a streamlined version you can easily deploy as your MCP aggregation manager in your local infrastructure.
🚀 The Problem We Solve
Imagine you have:
- 📦 Dozens of MCP servers, each with dozens of tools
- 🤖 AI models seeing 100s-1000s of tools at once
- 📉 Degraded performance due to massive context
✨ The Strata Solution
Instead of flooding your AI model with hundreds of tools, Strata acts as an intelligent router:
🔍 Smart Discovery → Only exposes a few essential tools to the model
🎯 Progressive Access → Finds and surfaces the right tool when needed
⚡ Optimized Context → Maintains peak model performance
🔗 Seamless Integration → Works with your existing MCP servers, and easy configuration
Quick Start
Installation
pipx install strata-mcp
Or with pip:
pip install strata-mcp
For development:
pip install -e .
Configure MCP Servers
You can configure your MCP servers by strata CLI tool. Or manually configure it in a JSON file, just like your other MCP JSON config files.
Add MCP servers
- Stdio Server
strata add --type stdio <server_name> npx @playwright/mcp@latest
- SSE Server
strata add --type sse <server_name> http://localhost:8080/mcp/ --env API_KEY=your_key
- HTTP Server
strata add --type http <server_name> https://api.githubcopilot.com/mcp/ --header "Authorization=Bearer token"
- HTTP Server with OAuth
strata add --type http <server_name> https://mcp.notion.com/mcp --auth_type oauth
List Servers
strata list
Enable/Disable Servers
strata enable <server_name>
strata disable <server_name>
Remove Servers
strata remove server-name
Manual Configuration
Configuration is stored in ~/.config/strata/servers.json by default. You can specify a custom config path:
strata --config-path /path/to/config.json add --type stdio ...
Config Format
{
"mcp": {
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your_token"
},
"enabled": true
},
"api-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer token"
},
"enabled": true
}
}
}
}
Environment Variables
MCP_CONFIG_PATH- Custom config file pathMCP_ROUTER_PORT- Default port for HTTP/SSE server (default: 8080)
Running Strata MCP servers
Strata itself is a MCP server. You can run and use it like a normal MCP, in stdio mode or http/sse mode.
Stdio Mode (Default)
Run without arguments to start in stdio mode for direct MCP communication:
python -m strata
# or
strata
HTTP/SSE Server Mode
Run with port to start as HTTP/SSE server:
strata run --port 8080
Tool Integration
Strata can automatically configure itself in various AI assistants and IDEs that support MCP.
Add Strata to Claude Code
# Add to user configuration (default)
strata tool add claude
# Add to project-specific configuration
strata tool add claude --scope project
Add Strata to Gemini
strata tool add gemini
Add Strata to VSCode
strata tool add vscode
Add Strata to Cursor
# Add to user configuration (~/.cursor/mcp.json)
strata tool add cursor --scope user
# Add to project configuration (.cursor/mcp.json)
strata tool add cursor --scope project
Supported scopes:
user: Global configuration (default)project: Project-specific configurationlocal: Same as project (for Cursor)
Note: VSCode doesn't support scope parameter and will use its default behavior.
Available Tools
When running as a router, the following tools are exposed:
discover_server_actions- Discover available actions from configured serversget_action_details- Get detailed information about a specific actionexecute_action- Execute an action on a target serversearch_documentation- Search server documentationhandle_auth_failure- Handle authentication issues
Development
Running Tests
pytest
Project Structure
src/strata/- Main source codecli.py- Command-line interfaceserver.py- Server implementation (stdio/HTTP/SSE)tools.py- Tool implementationsmcp_client_manager.py- MCP client managementconfig.py- Configuration management
Examples
Running GitHub MCP Server through Router
# Add GitHub server (official HTTP server)
strata add --type http github https://api.githubcopilot.com/mcp/
# Run router in stdio mode
strata
# Or run as HTTP server
strata run --port 8080
Running Multiple Servers
# Add multiple servers
strata add --type stdio playwright npx @playwright/mcp@latest
strata add --type http github https://api.githubcopilot.com/mcp/
# List all servers
strata list
# Run router with all enabled servers
strata run --port 8080
Metadata
Release files for strata-mcp 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| strata_mcp-1.0.2.tar.gz | 114.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strata_mcp-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 157.6 kB
Release files / strata_mcp-1.0.2.tar.gz
| Download URL | strata_mcp-1.0.2.tar.gz |
|---|---|
| Size | 114.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8631c09dbf6e65d33a7597aef86c01d35dfd0296e8af78f0f04d0bba44afc017
|
|
BLAKE2b-256 checksum How to use checksums |
123cdc931d773735959de0595be04d7ad4f4b5df347f7557ca6e506a9b993fcf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.4
|
Release files / strata_mcp-1.0.2-py3-none-any.whl
| Download URL | strata_mcp-1.0.2-py3-none-any.whl |
|---|---|
| Size | 43.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2cebb3fe291639b8af86ef8e9754b8d883967aeff8555ebd12c45edaed46fb67
|
|
BLAKE2b-256 checksum How to use checksums |
0c28ccda14a12bbf8091039aa069a111d08f74fb8fedbac47f77080e9a2a8d7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.4
|