Outsource MCP
Provides text generation capabilities using Google's Gemini models including Gemini Pro and Gemini Flash
Allows direct access to Meta's Llama models for text generation
Allows text generation using NVIDIA's AI models through their API
Enables text generation using locally hosted models via Ollama
Provides text generation with GPT models and image generation with DALL-E 2 and DALL-E 3 models
Enables text generation using Perplexity's Sonar models through their API
Provides access to Vercel AI (v0) models for text generation
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Outsource MCPgenerate a creative tagline for our new coffee shop using GPT-4o-mini"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Outsource MCP
An MCP (Model Context Protocol) server that enables AI applications to outsource tasks to various model providers through a unified interface.
Compatible with any AI tool that supports the Model Context Protocol, including Claude Desktop, Cline, and other MCP-enabled applications. Built with FastMCP for the MCP server implementation and 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
Related MCP server: Model Hub MCP
Configuration
Add the following configuration to your MCP client. Consult your MCP client's documentation for specific configuration details.
{
"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:
Generate text: Use the
outsource_texttool with provider "openai", model "gpt-4o-mini", and prompt "Write a haiku about coding"Generate images: Use the
outsource_imagetool 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. | ModelsAnthropic (
anthropic) - Claude 3.5, Claude 3, etc. | ModelsGoogle (
google) - Gemini Pro, Gemini Flash, etc. | ModelsGroq (
groq) - Llama 3, Mixtral, etc. | ModelsDeepSeek (
deepseek) - DeepSeek Chat & Coder | ModelsxAI (
xai) - Grok models | ModelsPerplexity (
perplexity) - Sonar models | Models
Additional Providers
Cohere (
cohere) - Command models | ModelsMistral AI (
mistral) - Mistral Large, Medium, Small | ModelsNVIDIA (
nvidia) - Various models | ModelsHuggingFace (
huggingface) - Open source models | ModelsOllama (
ollama) - Local models | ModelsFireworks AI (
fireworks) - Fast inference | ModelsOpenRouter (
openrouter) - Multi-provider access | ModelsTogether AI (
together) - Open source models | ModelsCerebras (
cerebras) - Fast inference | ModelsDeepInfra (
deepinfra) - Optimized models | ModelsSambaNova (
sambanova) - Enterprise models | Models
Enterprise Providers
AWS Bedrock (
awsorbedrock) - AWS-hosted models | ModelsAzure AI (
azure) - Azure-hosted models | ModelsIBM WatsonX (
ibmorwatsonx) - IBM models | ModelsLiteLLM (
litellm) - Universal interface | ModelsVercel v0 (
vercelorv0) - Vercel AI | ModelsMeta Llama (
meta) - Direct Meta access | Models
Environment Variables
Each provider requires its corresponding API key:
Provider | Environment Variable | Example |
OpenAI |
| sk-... |
Anthropic |
| sk-ant-... |
| AIza... | |
Groq |
| gsk_... |
DeepSeek |
| sk-... |
xAI |
| xai-... |
Perplexity |
| pplx-... |
Cohere |
| ... |
Fireworks |
| ... |
HuggingFace |
| hf_... |
Mistral |
| ... |
NVIDIA |
| nvapi-... |
Ollama |
| |
OpenRouter |
| ... |
Together |
| ... |
Cerebras |
| ... |
DeepInfra |
| ... |
SambaNova |
| ... |
AWS Bedrock | AWS credentials | Via AWS CLI/SDK |
Azure AI | Azure credentials | Via Azure CLI/SDK |
IBM WatsonX |
| ... |
Meta Llama |
| ... |
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 cookiesImage 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 sunsetDevelopment
Prerequisites
Python 3.11 or higher
uv package manager
Setup
git clone https://github.com/gwbischof/outsource-mcp.git
cd outsource-mcp
uv syncTesting with MCP Inspector
The MCP Inspector allows you to test the server interactively:
mcp dev server.pyRunning Tests
The test suite includes integration tests that verify both text and image generation:
# Run all tests
uv run pytestNote: Integration tests require API keys to be set in your environment.
Troubleshooting
Common Issues
"Error: Unknown provider"
Check that you're using a supported provider name from the list above
Provider names are case-insensitive
"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
"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)
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.
Available Tools
2 toolsoutsource_imageA
Delegate image generation to an external AI model. Use this when you need to create
visual content.
Args:
provider: The AI provider to use (currently only "openai" is supported)
model: The image model to use ("dall-e-3" for high quality, "dall-e-2" for faster/cheaper)
prompt: A detailed description of the image you want to generate
Returns:
The URL of the generated image, which can be shared with users or used in responses
Example usage:
For high-quality images: provider="openai", model="dall-e-3", prompt="A photorealistic rendering of..."
For quick concepts: provider="openai", model="dall-e-2", prompt="A simple sketch showing..."
Note: Only OpenAI currently supports image generation. Other providers will return an error.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | ||
| model | Yes | ||
| prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: provider limitations ('currently only "openai" is supported'), model-specific guidance, error conditions ('Other providers will return an error'), and return format ('URL of the generated image'). It doesn't mention rate limits, costs, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (Args, Returns, Example usage, Note), front-loaded purpose statement, and every sentence adds value. No redundant information or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description provides substantial context: purpose, parameters, return format, examples, and limitations. It could potentially mention authentication requirements or rate limits, but covers the essential operational aspects well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all three parameters: provider (with current limitation), model (with quality/speed tradeoffs), and prompt (with guidance on detail). The example usage provides concrete parameter value guidance beyond what the bare schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delegate image generation' and resource 'to an external AI model', with specific purpose 'create visual content'. It distinguishes from sibling 'outsource_text' by focusing on images rather than text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context 'when you need to create visual content' and distinguishes from text generation via sibling tool name. However, it doesn't explicitly state when NOT to use this tool or mention alternative approaches beyond the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
outsource_textA
Delegate text generation to another AI model. Use this when you need capabilities
or perspectives from a different model than yourself.
Args:
provider: The AI provider to use (e.g., "openai", "anthropic", "google", "groq")
model: The specific model identifier (e.g., "gpt-4o", "claude-3-5-sonnet-20241022", "gemini-2.0-flash-exp")
prompt: The instruction or query to send to the external model
Returns:
The text response from the external model, or an error message if the request fails
Example usage:
To get a different perspective: provider="anthropic", model="claude-3-5-sonnet-20241022", prompt="Analyze this problem from a different angle..."
To leverage specialized models: provider="deepseek", model="deepseek-coder", prompt="Write optimized Python code for..."
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | ||
| model | Yes | ||
| prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it delegates to external models, returns text responses or error messages, and implies it's a read-only operation (no destructive effects mentioned). However, it doesn't cover rate limits, authentication needs, or detailed error handling beyond 'if the request fails,' leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose and usage guidelines. Each sentence adds value, such as parameter explanations and examples, with no wasted words. The structure is logical and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (delegation to external AI models) and lack of annotations and output schema, the description is mostly complete. It covers purpose, usage, parameters, and returns, but could benefit from more details on error types or operational constraints. However, it's sufficient for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds significant meaning beyond the input schema by explaining each parameter's purpose with examples: 'provider' specifies AI providers like 'openai', 'model' is the specific identifier, and 'prompt' is the instruction to send. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs and resources: 'Delegate text generation to another AI model.' It distinguishes from the sibling tool 'outsource_image' by specifying 'text generation' versus image-related tasks. The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use this when you need capabilities or perspectives from a different model than yourself.' It provides clear context for usage, including example scenarios like getting different perspectives or leveraging specialized models, without misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
- First observed
outsource_image - First observed
outsource_text
TDQS
The two tools have clearly distinct purposes: one handles image generation while the other handles text generation. Their descriptions explicitly differentiate when to use each tool, with no overlap in functionality or ambiguity about which tool to select for a given task.
Both tools follow a consistent 'outsource_<resource>' naming pattern, using snake_case throughout. The naming convention is predictable and clearly indicates the type of content being outsourced (image vs text).
With only 2 tools, this server feels thin for its apparent scope of 'outsourcing' AI tasks. While the two tools cover image and text generation, the server name suggests broader outsourcing capabilities that aren't represented in the tool surface, such as audio generation, video processing, or other AI services.
For a server named 'Outsource MCP', the tool surface is severely incomplete. It only covers image and text generation, missing obvious outsourcing capabilities like audio generation, video processing, code execution, data analysis, or other AI services that would logically fall under an outsourcing umbrella. The domain implied by the server name is much broader than what's actually covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect MCP clients to 2,000+ AI models without managing provider API keys.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- FlicenseBqualityDmaintenanceA lightweight MCP server that provides a unified interface to various LLM providers including OpenAI, Anthropic, Google Gemini, Groq, DeepSeek, and Ollama.6739-
- AlicenseBqualityDmaintenanceAn MCP server that retrieves and provides AI model information from OpenAI, Anthropic, and Google through a unified interface.322MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that functions as an intelligent gateway for multiple LLM backends including OpenAI, Claude, and Ollama. It supports automatic provider fallback, streaming responses via Server-Sent Events, and real-time monitoring for robust AI integration.MIT
- AlicenseAqualityDmaintenanceMCP server for multi-provider AI image generation (AWS Bedrock, OpenAI, Google Gemini) enabling image generation, transformation, and editing through a unified interface.41MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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