A powerful service for building, managing, and deploying self-learning and self-generating MCP (Model Context Protocol) agents.
CodexAid is a framework that allows you to create intelligent MCP agents that can learn from tasks and generate new skills on their own. The system follows a design-develop-deploy pipeline that turns natural language prompts into functional MCP servers with custom tools.
- Self-Learning: Create agents that can learn from user interactions
- Self-Generation: Generate new MCP servers based on natural language prompts
- Tool Generation: Automatically create and deploy new tools based on requirements
- FastAPI Integration: Expose MCP functionality through an HTTP API
- Design-Develop Pipeline: Structured approach to converting tasks into working code
The system consists of several key components:
- Designer: Analyzes tasks and creates specifications for development
- Developer: Implements tools based on specifications
- MCP Builder: Constructs MCP servers from developed tools
- Tool Server: FastAPI server that hosts and manages MCP tools
- Python 3.12 or higher
- Dependencies listed in pyproject.toml
# Clone the repository
git clone <repository-url>
cd CodexAid
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e .- Start the Tool Server:
python mcp_service/tool_server.py- Create a new MCP from a prompt:
from scr.work import mcp_create
# Generate a new MCP server from a natural language prompt
mcp_str = mcp_create("Create a tool that summarizes web content")
# Save the generated server
with open("my_new_mcp.py", "w") as f:
f.write(mcp_str)- Use the HTTP API to generate new MCPs:
curl -X POST "http://localhost:8848/new_mcp" \
-H "Content-Type: application/json" \
-d '{"prompt": "Create a tool that searches for information"}'GET /health- Check server healthGET /reset- Reset the MCP managerGET /get_tool- Get available toolsGET /get_tool/{agent_name}- Get tools for a specific agentPOST /call_tool/{tool_name}- Call a specific toolPOST /new_mcp- Generate a new MCP from a prompt
Edit the config.py file to configure:
- LLM API endpoints and keys
- MCP service paths
- Server port
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("LearningTimer")
@mcp.tool(description='Start a learning timer when detected')
async def start_learning_timer():
# Implementation details
pass
if __name__ == '__main__':
mcp.run(transport='stdio')See the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.