Skip to main content
Glama

Outsource MCP

README.md9.7 kB
# Outsource MCP An MCP (Model Context Protocol) server that enables AI applications to outsource tasks to various model providers through a unified interface. <img width="1154" alt="image" src="https://github.com/user-attachments/assets/cd364a7c-eae5-4c58-bc1f-fdeea6cb8434" /> <img width="1103" alt="image" src="https://github.com/user-attachments/assets/55924981-83e9-4811-9f51-b049595b7505" /> Compatible with any AI tool that supports the Model Context Protocol, including Claude Desktop, Cline, and other MCP-enabled applications. Built with [FastMCP](https://github.com/mcp/fastmcp) for the MCP server implementation and [Agno](https://github.com/agno-agi/agno) for AI agent capabilities. ## Features - 🤖 **Multi-Provider Support**: Access 20+ AI providers through a single interface - 📝 **Text Generation**: Generate text using models from OpenAI, Anthropic, Google, and more - 🎨 **Image Generation**: Create images using DALL-E 3 and DALL-E 2 - 🔧 **Simple API**: Consistent interface with just three parameters: provider, model, and prompt - 🔑 **Flexible Authentication**: Only configure API keys for the providers you use ## Configuration Add the following configuration to your MCP client. Consult your MCP client's documentation for specific configuration details. ```json { "mcpServers": { "outsource-mcp": { "command": "uvx", "args": ["--from", "git+https://github.com/gwbischof/outsource-mcp.git", "outsource-mcp"], "env": { "OPENAI_API_KEY": "your-openai-key", "ANTHROPIC_API_KEY": "your-anthropic-key", "GOOGLE_API_KEY": "your-google-key", "GROQ_API_KEY": "your-groq-key", "DEEPSEEK_API_KEY": "your-deepseek-key", "XAI_API_KEY": "your-xai-key", "PERPLEXITY_API_KEY": "your-perplexity-key", "COHERE_API_KEY": "your-cohere-key", "FIREWORKS_API_KEY": "your-fireworks-key", "HUGGINGFACE_API_KEY": "your-huggingface-key", "MISTRAL_API_KEY": "your-mistral-key", "NVIDIA_API_KEY": "your-nvidia-key", "OLLAMA_HOST": "http://localhost:11434", "OPENROUTER_API_KEY": "your-openrouter-key", "TOGETHER_API_KEY": "your-together-key", "CEREBRAS_API_KEY": "your-cerebras-key", "DEEPINFRA_API_KEY": "your-deepinfra-key", "SAMBANOVA_API_KEY": "your-sambanova-key" } } } } ``` Note: The environment variables are optional. Only include the API keys for the providers you want to use. ## Quick Start Once installed and configured, you can use the tools in your MCP client: 1. **Generate text**: Use the `outsource_text` tool with provider "openai", model "gpt-4o-mini", and prompt "Write a haiku about coding" 2. **Generate images**: Use the `outsource_image` tool with provider "openai", model "dall-e-3", and prompt "A futuristic city skyline at sunset" ## Tools ### outsource_text Creates an Agno agent with a specified provider and model to generate text responses. **Arguments:** - `provider`: The provider name (e.g., "openai", "anthropic", "google", "groq", etc.) - `model`: The model name (e.g., "gpt-4o", "claude-3-5-sonnet-20241022", "gemini-2.0-flash-exp") - `prompt`: The text prompt to send to the model ### outsource_image Generates images using AI models. **Arguments:** - `provider`: The provider name (currently only "openai" is supported) - `model`: The model name ("dall-e-3" or "dall-e-2") - `prompt`: The image generation prompt Returns the URL of the generated image. > **Note**: Image generation is currently only supported by OpenAI models (DALL-E 2 and DALL-E 3). Other providers only support text generation. ## Supported Providers The following providers are supported. Use the provider name (in parentheses) as the `provider` argument: ### Core Providers - **OpenAI** (`openai`) - GPT-4, GPT-3.5, DALL-E, etc. | [Models](https://platform.openai.com/docs/models) - **Anthropic** (`anthropic`) - Claude 3.5, Claude 3, etc. | [Models](https://docs.anthropic.com/en/docs/about-claude/models/overview) - **Google** (`google`) - Gemini Pro, Gemini Flash, etc. | [Models](https://ai.google.dev/models) - **Groq** (`groq`) - Llama 3, Mixtral, etc. | [Models](https://console.groq.com/docs/models) - **DeepSeek** (`deepseek`) - DeepSeek Chat & Coder | [Models](https://api-docs.deepseek.com/api/list-models) - **xAI** (`xai`) - Grok models | [Models](https://docs.x.ai/docs/models) - **Perplexity** (`perplexity`) - Sonar models | [Models](https://docs.perplexity.ai/guides/model-cards) ### Additional Providers - **Cohere** (`cohere`) - Command models | [Models](https://docs.cohere.com/v2/docs/models) - **Mistral AI** (`mistral`) - Mistral Large, Medium, Small | [Models](https://docs.mistral.ai/getting-started/models/models_overview/) - **NVIDIA** (`nvidia`) - Various models | [Models](https://build.nvidia.com/models) - **HuggingFace** (`huggingface`) - Open source models | [Models](https://huggingface.co/models) - **Ollama** (`ollama`) - Local models | [Models](https://ollama.com/library) - **Fireworks AI** (`fireworks`) - Fast inference | [Models](https://fireworks.ai/models?view=list) - **OpenRouter** (`openrouter`) - Multi-provider access | [Models](https://openrouter.ai/docs/overview/models) - **Together AI** (`together`) - Open source models | [Models](https://docs.together.ai/docs/serverless-models) - **Cerebras** (`cerebras`) - Fast inference | [Models](https://cerebras.ai/models) - **DeepInfra** (`deepinfra`) - Optimized models | [Models](https://deepinfra.com/docs/models) - **SambaNova** (`sambanova`) - Enterprise models | [Models](https://docs.sambanova.ai/cloud/docs/get-started/supported-models) ### Enterprise Providers - **AWS Bedrock** (`aws` or `bedrock`) - AWS-hosted models | [Models](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html) - **Azure AI** (`azure`) - Azure-hosted models | [Models](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/foundry-models-overview) - **IBM WatsonX** (`ibm` or `watsonx`) - IBM models | [Models](https://www.ibm.com/docs/en/software-hub/5.1.x?topic=install-foundation-models) - **LiteLLM** (`litellm`) - Universal interface | [Models](https://docs.litellm.ai/docs/providers) - **Vercel v0** (`vercel` or `v0`) - Vercel AI | [Models](https://sdk.vercel.ai/docs/introduction) - **Meta Llama** (`meta`) - Direct Meta access | [Models](https://www.llama.com/get-started/) ### Environment Variables Each provider requires its corresponding API key: | Provider | Environment Variable | Example | |----------|---------------------|---------| | OpenAI | `OPENAI_API_KEY` | sk-... | | Anthropic | `ANTHROPIC_API_KEY` | sk-ant-... | | Google | `GOOGLE_API_KEY` | AIza... | | Groq | `GROQ_API_KEY` | gsk_... | | DeepSeek | `DEEPSEEK_API_KEY` | sk-... | | xAI | `XAI_API_KEY` | xai-... | | Perplexity | `PERPLEXITY_API_KEY` | pplx-... | | Cohere | `COHERE_API_KEY` | ... | | Fireworks | `FIREWORKS_API_KEY` | ... | | HuggingFace | `HUGGINGFACE_API_KEY` | hf_... | | Mistral | `MISTRAL_API_KEY` | ... | | NVIDIA | `NVIDIA_API_KEY` | nvapi-... | | Ollama | `OLLAMA_HOST` | http://localhost:11434 | | OpenRouter | `OPENROUTER_API_KEY` | ... | | Together | `TOGETHER_API_KEY` | ... | | Cerebras | `CEREBRAS_API_KEY` | ... | | DeepInfra | `DEEPINFRA_API_KEY` | ... | | SambaNova | `SAMBANOVA_API_KEY` | ... | | AWS Bedrock | AWS credentials | Via AWS CLI/SDK | | Azure AI | Azure credentials | Via Azure CLI/SDK | | IBM WatsonX | `IBM_WATSONX_API_KEY` | ... | | Meta Llama | `LLAMA_API_KEY` | ... | **Note**: Only configure the API keys for providers you plan to use. ## Examples ### Text Generation ``` # Using OpenAI provider: openai model: gpt-4o-mini prompt: Write a haiku about coding # Using Anthropic provider: anthropic model: claude-3-5-sonnet-20241022 prompt: Explain quantum computing in simple terms # Using Google provider: google model: gemini-2.0-flash-exp prompt: Create a recipe for chocolate chip cookies ``` ### Image Generation ``` # Using DALL-E 3 provider: openai model: dall-e-3 prompt: A serene Japanese garden with cherry blossoms # Using DALL-E 2 provider: openai model: dall-e-2 prompt: A futuristic cityscape at sunset ``` ## Development ### Prerequisites - Python 3.11 or higher - [uv](https://github.com/astral-sh/uv) package manager ### Setup ```bash git clone https://github.com/gwbischof/outsource-mcp.git cd outsource-mcp uv sync ``` ### Testing with MCP Inspector The MCP Inspector allows you to test the server interactively: ```bash mcp dev server.py ``` ### Running Tests The test suite includes integration tests that verify both text and image generation: ```bash # Run all tests uv run pytest ``` **Note:** Integration tests require API keys to be set in your environment. ## Troubleshooting ### Common Issues 1. **"Error: Unknown provider"** - Check that you're using a supported provider name from the list above - Provider names are case-insensitive 2. **"Error: OpenAI API error"** - Verify your API key is correctly set in the environment variables - Check that your API key has access to the requested model - Ensure you have sufficient credits/quota 3. **"Error: No image was generated"** - This can happen if the image generation request fails - Try a simpler prompt or different model (dall-e-2 vs dall-e-3) 4. **Environment variables not working** - Make sure to restart your MCP client after updating the configuration - Verify the configuration file location for your specific MCP client - Check that the environment variables are properly formatted in the configuration ## Contributing Contributions are welcome! Please feel free to submit a Pull Request.

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/gwbischof/outsource-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server