veil-mcp
by shivankpndy
README.md
# veil-mcp v2
The best way to build MCP servers in Python.
```bash
pip install veil-mcp
```
## Quick start — MCP server (Claude Desktop / Cursor)
```python
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
```python
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
```bash
pip install "veil-mcp[anthropic]" # Claude
pip install "veil-mcp[openai]" # GPT / Groq / Ollama
pip install "veil-mcp[all]" # everything
```
## CLI
```bash
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`:
```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
This server cannot be deployed