No project description provided
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strata_mcp-1.0.2.tar.gz.
File metadata
- Download URL: strata_mcp-1.0.2.tar.gz
- Upload date:
- Size: 114.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8631c09dbf6e65d33a7597aef86c01d35dfd0296e8af78f0f04d0bba44afc017
|
|
| MD5 |
e454c21446ffd6b7c996e09d35433c15
|
|
| BLAKE2b-256 |
123cdc931d773735959de0595be04d7ad4f4b5df347f7557ca6e506a9b993fcf
|
File details
Details for the file strata_mcp-1.0.2-py3-none-any.whl.
File metadata
- Download URL: strata_mcp-1.0.2-py3-none-any.whl
- Upload date:
- Size: 43.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cebb3fe291639b8af86ef8e9754b8d883967aeff8555ebd12c45edaed46fb67
|
|
| MD5 |
95c084a752dad1467f08ddef93273ba9
|
|
| BLAKE2b-256 |
0c28ccda14a12bbf8091039aa069a111d08f74fb8fedbac47f77080e9a2a8d7f
|