ai-meta
A dynamic MCP server that allows AI to create and execute custom tools through a meta-function architecture
claude mcp add --transport stdio alxspiker-ai-meta-mcp-server npx -y ai-meta-mcp-server \ --env PERSIST_TOOLS="true" \ --env TOOLS_DB_PATH="./tools.json" \ --env ALLOW_JS_EXECUTION="true" \ --env ALLOW_SHELL_EXECUTION="false" \ --env ALLOW_PYTHON_EXECUTION="false"
How to use
AI Meta MCP Server provides a dynamic meta-function architecture that lets AI models define and run custom tools at runtime. With sandboxed execution for JavaScript, Python, and Shell, tools can be created, registered, and invoked while maintaining safety through human approval workflows and configurable execution privileges. This server is designed to be used within trusted environments where AI needs extensible capabilities, such as performing domain-specific calculations, data transformations, file operations, or interacting with external services via user-defined tools. You can manage tools—create, list, update, delete—and have them persisted across sessions for consistent behavior. Use the included tools registry and the meta-tool framework to define new capabilities on the fly, then execute them through your AI workflows with explicit human approval when necessary.
How to install
Prerequisites:
- Node.js (recommended LTS) and npm installed
- Basic familiarity with running commands in a terminal
Install from npm:
npm install ai-meta-mcp-server
Run the server locally with npx (no installation required beyond npm):
npx ai-meta-mcp-server
If you prefer Docker (build and run the image):
# Build the Docker image
docker build -t ai-meta-mcp-server .
# Run the container
docker run --rm -i ai-meta-mcp-server
# Run with custom configuration and persistent storage
docker run --rm -i \
-e ALLOW_PYTHON_EXECUTION=true \
-e ALLOW_SHELL_EXECUTION=false \
-v $(pwd)/data:/app/data \
ai-meta-mcp-server
Environment variables to customize behavior (examples):
- ALLOW_JS_EXECUTION: Enable JavaScript execution (default: true)
- ALLOW_PYTHON_EXECUTION: Enable Python execution (default: false)
- ALLOW_SHELL_EXECUTION: Enable Shell execution (default: false)
- PERSIST_TOOLS: Persist tools between sessions (default: true)
- TOOLS_DB_PATH: Path to store tools database (default: "./tools.json")
If you’re integrating with Claude Desktop, you can configure the mcpServers with a Claude-specific config as shown in the README, using npx and the appropriate environment variable presets.
Additional notes
Tips and caveats:
- This MCP server executes dynamic code inside sandboxes. Always operate in a trusted environment and enable Human-in-the-loop approval for tool creation and execution.
- Tool execution privileges can be tuned via environment variables (JS/Python/Shell flags) and tool-by-tool settings.
- Enable persistence to keep tool definitions across sessions. If disabled, tools will be lost when the server restarts.
- The tools registry supports define, list, update, and delete operations; use the meta-tool workflow to create new capabilities at runtime.
- Audit logging is recommended for all operations to track tool creation, updates, and executions.
- When running in Docker, consider mounting a persistent volume for the tools database and data storage to avoid data loss between restarts.
Related MCP Servers
zen
Selfhosted notes app. Single golang binary, notes stored as markdown within SQLite, full-text search, very low resource usage
MCP -Deepseek_R1
A Model Context Protocol (MCP) server implementation connecting Claude Desktop with DeepSeek's language models (R1/V3)
mcp-fhir
A Model Context Protocol implementation for FHIR
mcp
Inkdrop Model Context Protocol Server
mcp-appium-gestures
This is a Model Context Protocol (MCP) server providing resources and tools for Appium mobile gestures using Actions API..
dubco -npm
The (Unofficial) dubco-mcp-server enables AI assistants to manage Dub.co short links via the Model Context Protocol. It provides three MCP tools: create_link for generating new short URLs, update_link for modifying existing links, and delete_link for removing short links.