MCP#
gptme works as both an MCP client (consuming external MCP servers) and an MCP server (exposing gptme tools to Claude Desktop, Cursor, and other MCP clients).
Configuration#
You can configure MCP in your Global config (~/.config/gptme/config.toml) file:
[mcp]
enabled = true
auto_start = true
[[mcp.servers]]
name = "my-server"
enabled = true
command = "server-command"
args = ["--arg1", "--arg2"]
env = { API_KEY = "your-key" }
# HTTP MCP Server example
[[mcp.servers]]
name = "http-server"
enabled = true
url = "https://example.com/mcp"
headers = { Authorization = "Bearer your-token" }
We also intend to support specifying it in the Project config, and the ability to set it per-conversation.
Management Tool#
gptme includes a powerful MCP management tool that allows you to discover and dynamically load MCP servers during a conversation.
Commands#
The mcp tool provides the following slash-commands:
/search [query]: Search for MCP servers across registries/info <server-name>: Get detailed information about a specific server/load <server-name>: Dynamically load an MCP server into the current session/unload <server-name>: Unload a previously loaded MCP server/list: List all currently configured and loaded MCP servers
Once loaded, the server’s tools will be available as <server-name>.<tool-name> in the conversation.
Configuration Options#
enabled: Enable/disable MCP support globallyauto_start: Automatically start MCP servers when neededservers: List of MCP server configurationsname: Unique identifier for the serverenabled: Enable/disable individual servercommand: Command to start the server (for stdio servers)args: List of command-line arguments (for stdio servers)url: HTTP endpoint URL (for HTTP servers)headers: HTTP headers dictionary (for HTTP servers)env: Environment variables for the server
MCP Server Examples#
SQLite Server#
The SQLite server provides database interaction and business intelligence capabilities through SQLite. It enables running SQL queries, analyzing business data, and automatically generating business insight memos:
[[mcp.servers]]
name = "sqlite"
enabled = true
command = "uvx"
args = [
"mcp-server-sqlite",
"--db-path",
"/path/to/sqlitemcp-store.sqlite"
]
The server provides these core tools:
Query Tools:
read_query: Execute SELECT queries to read datawrite_query: Execute INSERT, UPDATE, or DELETE queriescreate_table: Create new tables in the database
Schema Tools:
list_tables: Get a list of all tablesdescribe_table: View schema information for a specific table
Analysis Tools:
append_insight: Add business insights to the memo resource
Resources:
memo://insights: A continuously updated business insights memo
The server also includes a demonstration prompt mcp-demo that guides users through database operations and analysis.
Chrome DevTools Server#
The Chrome DevTools MCP server exposes Chrome DevTools Protocol capabilities — DOM inspection, network traffic analysis, JavaScript console, performance profiling, and Lighthouse audits — directly as MCP tools.
Requires Node.js and npx.
[[mcp.servers]]
name = "chrome-devtools"
enabled = true
command = "npx"
args = ["-y", "chrome-devtools-mcp@latest"]
The server provides tools across several categories:
Navigation:
navigate_page,new_page,close_page,select_pageInspection:
take_snapshot,take_screenshot,evaluate_scriptNetwork:
list_network_requests,get_network_requestConsole:
list_console_messages,get_console_messagePerformance:
performance_analyze_insight,lighthouse_auditAutomation:
click,type_text,fill_form,hover,drag
Useful flags:
--headless— run without a visible window (server environments)--isolated— clean browser state per session--slim— navigation and screenshots only (lightweight)
For example, to run headless with an isolated browser profile:
[[mcp.servers]]
name = "chrome-devtools"
enabled = true
command = "npx"
args = ["-y", "chrome-devtools-mcp@latest", "--headless", "--isolated"]
Running MCP Servers#
Each server provides its own set of tools that become available to the assistant.
MCP servers can be run in several ways:
Using package managers like
npx,uvx, orpipxfor convenient installation and executionRunning from source or pre-built binaries
Using Docker containers
Warning
Be cautious when using MCP servers from unknown sources, as they run with the same privileges as your user.
You can find a list of available MCP servers in the example servers and MCP directories like MCP.so.
Managing MCP Servers#
gptme provides CLI commands to manage and test your MCP servers:
# List all configured MCP servers and check their health
gptme-util mcp list
# Test connection to a specific server
gptme-util mcp test server-name
# Show detailed information about a server
gptme-util mcp info server-name
These commands help you verify that your MCP servers are properly configured and accessible.
gptme as an MCP Server#
gptme can expose its own tools (shell, Python REPL, file read/save, browser, etc.) as an MCP server so that Claude Desktop, Cursor, and other MCP clients can use them directly.
Quick start for Claude Desktop — add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"gptme": {
"command": "gptme-mcp-server",
"args": ["--tools", "shell,ipython,save,read"]
}
}
}
Then restart Claude Desktop. The shell, ipython, save, and read tools will appear in Claude’s tool menu.
Running the server manually:
# Standalone entrypoint (recommended for Claude Desktop)
gptme-mcp-server --tools shell,ipython,save,read
# Or via gptme-util (equivalent)
gptme-util mcp serve --tools shell,ipython,save,read
Options:
--tools: Comma-separated tool names to expose. Default:shell,ipython,save,append,read.subagentandmcpare always excluded.--workspace DIR: Working directory for all tool operations (default: current directory).--log-level: Log level sent to stderr (DEBUG,INFO,WARNING,ERROR).
The server is session-backed: one persistent gptme session per MCP connection, so the bash shell retains state, the Python REPL keeps variables, and file operations share a consistent working directory across multiple tool calls.