MCP Servers
Learn how to create Model Context Protocol (MCP) servers with PraisonAI agents
Creating MCP Servers
This guide demonstrates how to create Model Context Protocol (MCP) servers using PraisonAI agents. MCP is a protocol that enables AI models to use tools and communicate with external systems in a standardized way.
Quick Start
from praisonaiagents import Agent
# Create and launch an MCP server in one line
agent = Agent(instructions="Create a Tweet based on the topic provided")
agent.launch(port=8080, protocol="mcp")Your MCP server will be available at http://localhost:8080
Single Agent MCP Server
The simplest way to create an MCP server is with a single agent. This approach is ideal for specialized tasks where you need just one agent with a specific capability.
- Install Dependencies
Make sure you have the required packages installed:
bash pip install "praisonaiagents[mcp]>=0.0.81" - Create a Simple MCP Server
Create a file named
simple-mcp-server.pywith the following code:python from praisonaiagents import Agent agent = Agent(instructions="Create a Tweet based on the topic provided") agent.launch(port=8080, protocol="mcp") - Run the Server
bash python simple-mcp-server.pyYour MCP server will be available at
http://localhost:8080
Multi-Agent MCP Server with Custom Tools
For more complex scenarios, you can create an MCP server with multiple agents and custom tools. This approach allows for collaborative problem-solving and specialized capabilities.
- Install Additional Dependencies
bash pip install "praisonaiagents[mcp]" duckduckgo-search - Create a Multi-Agent MCP Server
Create a file named
simple-mcp-multi-agents-server.pywith the following code:python from praisonaiagents import Agent, AgentTeam from duckduckgo_search import DDGS def internet_search_tool(query: str): results = [] ddgs = DDGS() for result in ddgs.text(keywords=query, max_results=5): results.append({ "title": result.get("title", ""), "url": result.get("href", ""), "snippet": result.get("body", "") }) return results agent = Agent(instructions="You Search the internet for information", tools=[internet_search_tool]) agent2 = Agent(instructions="You Summarise the information") agents = AgentTeam(agents=[agent, agent2]) agents.launch(port=8080, protocol="mcp") - Run the Multi-Agent Server
bash python simple-mcp-multi-agents-server.pyYour multi-agent MCP server will be available at
http://localhost:8080
Multi-Agent MCP Server (Simple)
For scenarios where you need multiple agents to collaborate without custom tools, you can create a simpler multi-agent MCP server:
from praisonaiagents import Agent, AgentTeam
agent = Agent(instructions="You Search the internet for information")
agent2 = Agent(instructions="You Summarise the information")
agents = AgentTeam(agents=[agent, agent2])
agents.launch(port=8080, protocol="mcp")This approach is ideal for cases where you want agents with different specializations to work together using their built-in capabilities.
Connecting to MCP Servers
You can connect to MCP servers using various clients:
Using PraisonAI Agents
from praisonaiagents import Agent, MCP
client_agent = Agent(
instructions="Use the MCP server to complete tasks",
llm="gpt-4o-mini",
tools=MCP("http://localhost:8080/mcp")
)
response = client_agent.start("Create a tweet about artificial intelligence")
print(response)Using JavaScript/TypeScript
import { MCPClient } from '@modelcontextprotocol/client';
async function main() {
const client = new MCPClient('http://localhost:8080/mcp');
const response = await client.chat([
{ role: 'user', content: 'Create a tweet about artificial intelligence' }
]);
console.log(response.choices[0].message.content);
}
main();Advanced Configuration
Custom Port and Host
agent.launch(port=9000, host="127.0.0.1", protocol="mcp") # loopback default; set "0.0.0.0" to expose (requires a token)Authentication
agent.launch(port=8080, protocol="mcp", api_key="your-secret-key")CORS Configuration
agent.launch(port=8080, protocol="mcp", cors_origins=["https://yourdomain.com"])Deployment Options
For production deployments, consider:
- Docker Containerization:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["python", "simple-mcp-server.py"]- Cloud Deployment: Deploy to AWS, Google Cloud, or Azure using their container services.
- Kubernetes: For scalable deployments, use Kubernetes to manage your MCP server containers.
Security Considerations
- API Authentication: Always use API keys in production
- Rate Limiting: Implement rate limiting to prevent abuse
- Input Validation: Validate all incoming requests
- HTTPS: Use SSL/TLS for all production deployments
- Tool Permissions: Limit what custom tools can access
Features and Benefits
MCP provides a standardized way for AI models to interact with tools and services.
Custom ToolsEasily integrate custom tools like web search, database access, or API calls.
Multi-Agent CollaborationCreate systems where multiple specialized agents collaborate on complex tasks.
Language AgnosticConnect to MCP servers from any programming language that supports HTTP.
Best Practices
- Agent Instructions: Provide clear, specific instructions for each agent
- Tool Documentation: Document your custom tools thoroughly
- Error Handling: Implement robust error handling in your tools
- Monitoring: Set up logging and monitoring for your MCP servers
- Testing: Test your MCP servers thoroughly before deployment