Universal MCP acts as a middle ware for your API applications. It can store your credentials, authorize, enable disable apps on the fly and much more.
Project description
Universal MCP
Universal MCP acts as a middle ware for your API applications. It can store your credentials, authorize, enable disable apps on the fly and much more.
🌟 Features
- MCP (Model Context Protocol) Integration: Seamlessly works with MCP server architecture
- Simplified API Integration: Connect to services like GitHub, Google Calendar, Gmail, Reddit, Tavily, and more with minimal code
- Managed Authentication: Built-in support for API keys and OAuth-based authentication flows
- Extensible Architecture: Easily build and add new app integrations with minimal boilerplate
- Credential Management: Flexible storage options for API credentials with memory and environment-based implementations
🔧 Installation
Install AgentR using pip:
pip install universal-mcp
🚀 Quick Start
1. Get an API Key
Before using AgentR with services that require authorization (like GitHub, Gmail, etc.), you'll need an AgentR API key:
Visit https://agentr.dev to create an account Generate an API key from your dashboard Set it as an environment variable or include it directly in your code:
export AGENTR_API_KEY="your_api_key_here"
2. Create a basic server
from agentr.server import TestServer
# Define your applications list
apps_list = [
{
"name": "tavily",
"integration": {
"name": "tavily_api_key",
"type": "api_key",
"store": {
"type": "environment",
}
},
},
{
"name": "zenquotes",
"integration": None
},
{
"name": "github",
"integration": {
"name": "github",
"type": "agentr",
}
}
]
# Create a server with these applications
server = TestServer(name="My Agent Server", description="A server for my agent apps", apps_list=apps_list)
# Run the server
if __name__ == "__main__":
server.run()
Using Playground
Start MCP Server
universal_mcp run -t sse
Start FastAPI app
fastapi run src/playground
Start Frontend
streamlit run src/playground/streamlit.py
🧩 Available Applications
AgentR comes with several pre-built applications:
| Application | Description | Authentication Type |
|---|---|---|
| GitHub | Star repositories and more | OAuth (AgentR) |
| Google Calendar | Retrieve calendar events | OAuth (AgentR) |
| Gmail | Send emails | OAuth (AgentR) |
| Access Reddit data | OAuth (AgentR) | |
| Resend | Send emails via Resend API | API Key |
| Tavily | Web search capabilities | API Key |
| ZenQuotes | Get inspirational quotes | None |
Note: More applications are coming soon! Stay tuned for updates to our application catalog.
🔐 Integration Types
AgentR supports two primary integration types:
1. API Key Integration
For services that authenticate via API keys:
{
"name": "service_name",
"integration": {
"name": "service_api_key",
"type": "api_key",
"store": {
"type": "environment", # or "memory"
}
}
}
2. OAuth Integration (via AgentR)
For services requiring OAuth flow:
{
"name": "service_name",
"integration": {
"name": "service_name",
"type": "agentr"
}
}
When using OAuth integrations, users will be directed to authenticate with the service provider through a secure flow managed by AgentR.
🤖 CLI Usage
AgentR includes a command-line interface for common operations:
# Get version information
agentr version
# Generate API client from OpenAPI schema
agentr generate --schema path/to/openapi.yaml
# Run the test server
agentr run
# Install AgentR for specific applications
agentr install claude
📋 Requirements
- Python 3.11+
- Dependencies (automatically installed):
- loguru >= 0.7.3
- mcp >= 1.5.0
- pyyaml >= 6.0.2
- typer >= 0.15.2
📝 License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
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 universal_mcp-0.1.1.tar.gz.
File metadata
- Download URL: universal_mcp-0.1.1.tar.gz
- Upload date:
- Size: 123.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37aed5c3b44d021820a7abe1f625a05354b5c6565b94a1908f1501674377bfe1
|
|
| MD5 |
b08a509fc08e2035e4241edb8816936f
|
|
| BLAKE2b-256 |
93791b655ab46b5443c3aadf9d8ebc5d30352c5d3549fa53357933813fb2038e
|
File details
Details for the file universal_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: universal_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
742c90639940da215a140cccf1099d668d1c88f25c5c1e3ca44a14e30d9a6ba1
|
|
| MD5 |
42ac98f59a1a12f462a63fdc267ca092
|
|
| BLAKE2b-256 |
6a0d9d607b2618bde1a141eea624cc419d0fe3256faa541ea1eec8e9b076231c
|