Hi, I'm Ahmet.
I built MCPtoAI because my MCP setup only worked while I was sitting at the computer it was running on.
I wanted to access the same tools, files, and local MCP servers from my phone or another browser, use whichever AI model I preferred, and avoid uploading my API keys to yet another cloud service.
So I started building MCPtoAI.
How it works:
A small agent runs on your computer (macOS or Windows desktop app, Linux CLI via pip install mcptoai, or Docker).
It establishes an outbound WebSocket connection to our relay, so there's no need to open inbound ports or configure port forwarding.
You chat through the web app. The relay forwards requests to your device, where the agent communicates with the AI provider and executes tools locally.
A few details that might be interesting:
- API keys stay on your device, stored in the operating system's credential store. Model API calls are made directly from your machine.
- Multiple AI providers: Anthropic, OpenAI, DeepSeek, and others, including OpenAI-compatible endpoints. You can switch models mid-conversation without reconfiguring your MCP tools.
- Tool permissions: Every tool has Off / Ask / Allow settings. Ask mode prompts for each invocation and displays the full arguments before you approve or deny it, including from your phone.
- File access restrictions: Built-in file tools are limited to a workspace directory you choose.
- Long-running tasks: Jobs can continue after you close the browser, and you can return to check their progress.
- Restart safety: Pending approvals aren't automatically authorised or executed after an agent restart.
- Conversation history: You can choose between cloud-backed history and keeping it on your device.
The desktop app, Device Agent, and Linux CLI are open source under the MIT licence:
https://github.com/mcptoai/MCPtoAI
The hosted web app and relay infrastructure are not open source.
There are still limitations.
There's no end-to-end encryption yet. Traffic uses TLS, but the relay can access message content in transit.
Permissions are currently configured per tool rather than per argument. That means allowing a third-party MCP tool doesn't automatically restrict which arguments it can receive.
Approval events are persisted locally, but I'm still working on a more complete, verifiable audit trail.
I've documented the security model and its limitations here:
https://github.com/mcptoai/MCPtoAI/blob/main/docs/THREAT_MODEL.md
Here's a short demo (2 minutes):
https://www.youtube.com/watch?v=nAhHaHcHs1U
I'm still improving the project, and I'd really appreciate feedback, especially on the permission model, relay architecture, and security boundaries.
I'd also be interested to hear which parts of setting up and using MCP people still find unnecessarily complicated.
Thanks for taking a look!
Top comments (0)