ToolsXpo
Workspace & BillingToolsXpo CodeGuides

Local MCP servers

Running an MCP server as a local process — configuration, environment, and why a local server sees everything you do.

Updated September 2, 2026

A local MCP server runs as a process on your machine, communicating over stdio. Use one for anything that needs local access — your filesystem, a local database, a service only reachable from your network.

Configuration

Edit ~/.toolsxpo/data/settings/toolsxpo_mcp_settings.json directly, or use MCP → Edit Configuration:

JSON
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"],
      "env": {},
      "disabled": false,
      "timeout": 60
    }
  }
}

timeout is in seconds. This trips people up often enough to be worth stating twice.

Environment

Use the env object rather than putting secrets in args — arguments are visible in the process list to anything else on the machine.

JSON
"env": { "DATABASE_URL": "postgresql://localhost/mydb" }

What a local server can do

It runs with your permissions. It can read any file you can read and reach any service you can reach.

That is the point — it is also the risk. Treat an MCP server the way you would treat any dependency you install and run: know what it is, and prefer ones you or your organisation control.

Logs

Output goes to ~/.toolsxpo/vscode/logs/ for the extension, and ~/.toolsxpo/cli/logs/ for the CLI. Per-app, so two surfaces running at once do not interleave into one file.

Local versus remote

Local for anything needing machine access. Remote for anything your team shares — a local server has to be installed and configured by every person who wants it.

See also

mcplocalstdio

Related