Skip to content

Local Mode and MCP

appatalks edited this page Aug 13, 2026 · 1 revision

Local Mode and MCP

Eva supports a local route built around LM Studio and direct local MCP servers. It is the right starting point when you want local inference, no cloud model credential, and tools that run as local stdio subprocesses.

Local Mode in Five Steps

  1. Install and start a model in LM Studio.
  2. Start its OpenAI-compatible server, usually at http://localhost:1234/v1/chat/completions.
  3. In Settings > Models, select an LM Studio model or use it as an AIG backend.
  4. In Settings > General, choose Local retrieval mode.
  5. Send a simple chat request before adding MCP tools.

Local SQLite memory remains available. Local inference does not require an OpenAI, GitHub, or Google API key.

What Local Mode Does

In local mode, Eva calls the configured local model server and starts configured MCP servers directly. Its local agent loop can present tool schemas to LM Studio, execute returned tool calls, add the results, and continue until the model produces a final response. The loop has bounded iteration and timeout limits.

Eva auto-adds its built-in local web-search MCP server when it is not already configured. That server can search the web or fetch readable content without an API key, but network access and external-site policies still apply.

MCP Basics

The Model Context Protocol (MCP) is a standard way for a model host to discover and call tools. In Eva, each local MCP server is an allowlisted subprocess that communicates with JSON-RPC over standard input/output.

Typical optional MCP uses include:

Integration Purpose Prerequisite
Eva web search Web search, news search, and readable URL fetch Built in for local mode
Kusto Azure Data Explorer queries and memory/data workflows Azure authentication and Kusto configuration
GitHub GitHub tools through configured MCP support Docker and a scoped GitHub token where required
Azure Azure tool access Local Azure authentication
Project MCP Tools declared by a coding repository A bounded project-relative mcp.json or .mcp.json

Configure MCP Carefully

Use Settings > MCP to configure the supported integrations and refresh status. Custom configuration belongs in a local mcp.json or another local configuration path, never in a wiki page or chat transcript with real secrets.

When importing a coding project, Eva discovers MCP definitions from bounded, project-relative locations such as mcp.json, .mcp.json, .vscode/, and .github/. Enabling one applies only to future coding-agent runs for that project; it does not modify the global MCP configuration.

Use the least powerful tool set that can accomplish a task. A web-research task does not need a source-control or database MCP server attached to its model process.

Modern and Legacy MCP Compatibility

Eva's local stdio transport supports modern MCP 2026-07-28 and legacy 2024-11-05 negotiation. It probes a new subprocess and, when a server only accepts the legacy initialization era, starts a fresh process before retrying the legacy handshake. This means an initial incompatibility message from an older server can be a compatibility probe rather than a failed final setup.

Eva currently focuses on allowlisted local stdio tools. Remote HTTP transports, remote OAuth, and several wider MCP protocol surfaces are separate future work.

Local Mode Limits

  • The local model needs enough tool-calling ability to request tools correctly.
  • Current web data is still network data even when the model inference is local.
  • Browser automation, cloud memory, and configured provider services retain their own network and permission behavior.
  • Interactive MCP inputs are surfaced as unavailable until their continuation behavior is supported.

Troubleshoot a Local Setup

  1. Confirm LM Studio is running and the configured endpoint is reachable.
  2. Verify the selected model supports the response format you expect.
  3. Start with no custom MCP servers, then add one server at a time.
  4. Open the MCP status in Settings and inspect the local diagnostic view.
  5. If a server fails during modern probing, confirm whether it expects legacy initialization before treating the first stderr line as the root cause.

For broader provider selection, see Models and Providers. For individual tool behavior and approval habits, see Abilities and Automation.

Clone this wiki locally