MCP overview
Lime speaks the Model Context Protocol end-to-end. Configured MCP servers expose their tools alongside Lime’s built-ins, with permission handling, redaction, and approval behavior matching native tools.
What’s in scope
- Six transports —
stdio,sse,http(aliasstreamable-http),ws,sdk,lime-proxy. - Per-tool allow/deny. Block one tool from a server while keeping the rest enabled.
- Auto-approval hooks. Let trusted tools run without prompts based on annotations, regex on the input, or hook logic.
- Server-request demux. Lime correctly correlates concurrent in-flight server requests to their handlers.
- Elicitation + sampling handlers. Implements the MCP
elicit/createandsampling/createMessageserver-to-client requests. - OAuth normalization. Handles tokens, refresh, and re-auth flows across the wire formats different servers use.
- Redaction. Tool inputs and outputs are redacted in event logs.
- An interactive registry browser at
/mcp browse.
Quick start
Add a server with lime mcp add:
# stdio (npm package)lime mcp add sqlite npx -y @modelcontextprotocol/server-sqlite \ --db-path ./data.db
# stdio with environmentlime mcp add -e API_KEY=secret myserver npx my-mcp-server
# HTTP / SSElime mcp add --transport sse remote https://example.com/sse…or browse and install interactively:
/mcp browseThe browse picker queries
registry.modelcontextprotocol.io/v0/servers, lets you choose a scope
(local / project / user), and writes the server definition into your
settings file.
Where servers live
| Scope | File | Trusted at startup? |
|---|---|---|
user | ~/.lime/settings.json | ✓ |
local | .lime/settings.local.json | ✓ |
project | .lime.json, .mcp.json |
Project-scope MCP servers are not trusted at startup. The first time
you launch Lime in a repo with project MCP servers, you’ll be prompted to
approve them. The decision is remembered per-project; clear with
lime mcp reset-project-choices.
This pin prevents a malicious checked-in .mcp.json from auto-spawning a
process on a teammate’s machine.