veil-mcp v2
The best way to build MCP servers in Python.
pip install veil-mcp
Quick start — MCP server (Claude Desktop / Cursor)
from veil_mcp import tool, MCPServer
@tool()
def turn_off_light():
"""Turn off the room light."""
return "Light is off."
@tool(tags=["hardware"], timeout=5.0)
def toggle_relay(relay: int, state: bool) -> str:
"""Toggle a relay on or off.
Args:
relay (int): Relay number 1-4.
state (bool): True for ON, False for OFF.
"""
return f"Relay {relay} is {'ON' if state else 'OFF'}."
MCPServer(name="my-agent").run() # stdio — for Claude Desktop / Cursor
MCPServer(name="my-agent").run_http() # HTTP+SSE on port 8000
Quick start — LLM adapter
from veil_mcp import tool, LLMAdapter
@tool()
def get_time() -> str:
"""Get the current time."""
from datetime import datetime
return datetime.now().strftime("%I:%M %p")
adapter = LLMAdapter(provider="anthropic") # or openai, groq, ollama, mock
response = adapter.run("what time is it")
print(response.final_message)
Install
pip install "veil-mcp[anthropic]" # Claude
pip install "veil-mcp[openai]" # GPT / Groq / Ollama
pip install "veil-mcp[all]" # everything
CLI
veil-mcp list # list all tools
veil-mcp schema --fmt mcp # dump MCP schemas
veil-mcp inspect TOOL_NAME # inspect a tool
veil-mcp call TOOL_NAME '{"key":"v"}'# call a tool directly
veil-mcp run server.py # run as stdio MCP server
veil-mcp serve server.py --port 8000 # run as HTTP server
Connect to Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"my-agent": {
"command": "python",
"args": ["path/to/server.py"]
}
}
}
Providers
| Provider | Install | Key |
|---|---|---|
| Anthropic | pip install anthropic | ANTHROPIC_API_KEY |
| OpenAI | pip install openai | OPENAI_API_KEY |
| Groq | pip install openai | GROQ_API_KEY |
| Ollama | pip install openai | none (local) |
| Mock | none | none |
Made by Shivank for Hack Club Veil · 2026