Ghostfolio MCP
MCP server for Ghostfolio portfolio management and financial data access
The record the registry holds
There is no address to call. This one is a package you install and run yourself, wherever your assistant runs.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.mhajder/ghostfolio-mcp",
"description": "MCP server for Ghostfolio portfolio management and financial data access",
"title": "Ghostfolio MCP",
"repository": {
"url": "https://github.com/mhajder/ghostfolio-mcp",
"source": "github"
},
"version": "1.6.0",
"websiteUrl": "https://github.com/mhajder/ghostfolio-mcp",
"packages": [
{
"registryType": "pypi",
"identifier": "ghostfolio-mcp",
"version": "1.6.0",
"runtimeHint": "uvx",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Ghostfolio base URL (e.g., https://domain.tld:3333)",
"isRequired": true,
"name": "GHOSTFOLIO_URL"
},
{
"description": "Ghostfolio API token for authentication",
"isRequired": true,
"isSecret": true,
"name": "GHOSTFOLIO_TOKEN"
},
{
"description": "Verify SSL certificates (true/false)",
"default": "true",
"name": "GHOSTFOLIO_VERIFY_SSL"
},
{
"description": "Request timeout in seconds",
"default": "30",
"name": "GHOSTFOLIO_TIMEOUT"
},
{
"description": "Enable read-only mode to restrict write operations",
"default": "false",
"name": "READ_ONLY_MODE"
},
{
"description": "Comma-separated list of tags to disable tools for",
"name": "GHOSTFOLIO_DISABLED_TAGS"
},
{
"description": "Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
"default": "INFO",
"name": "LOG_LEVEL"
},
{
"description": "Enable rate limiting",
"default": "false",
"name": "RATE_LIMIT_ENABLED"
},
{
"description": "Maximum requests per rate limit window",
"default": "60",
"name": "RATE_LIMIT_MAX_REQUESTS"
},
{
"description": "Rate limit window in minutes",
"default": "1",
"name": "RATE_LIMIT_WINDOW_MINUTES"
},
{
"description": "Enable FastMCP tool search transform",
"default": "false",
"name": "TOOL_SEARCH_ENABLED"
},
{
"description": "Tool search strategy (bm25 or regex)",
"default": "bm25",
"name": "TOOL_SEARCH_STRATEGY"
},
{
"description": "Maximum tool search results returned by search_tools",
"default": "5",
"name": "TOOL_SEARCH_MAX_RESULTS"
}
]
},
{
"registryType": "pypi",
"identifier": "ghostfolio-mcp",
"version": "1.6.0",
"runtimeHint": "uvx",
"transport": {
"type": "streamable-http",
"url": "http://localhost:{MCP_HTTP_PORT}/mcp"
},
"environmentVariables": [
{
"description": "Ghostfolio base URL (e.g., https://domain.tld:3333)",
"isRequired": true,
"name": "GHOSTFOLIO_URL"
},
{
"description": "Ghostfolio API token for authentication",
"isRequired": true,
"isSecret": true,
"name": "GHOSTFOLIO_TOKEN"
},
{
"description": "Verify SSL certificates (true/false)",
"default": "true",
"name": "GHOSTFOLIO_VERIFY_SSL"
},
{
"description": "Request timeout in seconds",
"default": "30",
"name": "GHOSTFOLIO_TIMEOUT"
},
{
"description": "Enable read-only mode to restrict write operations",
"default": "false",
"name": "READ_ONLY_MODE"
},
{
"description": "Comma-separated list of tags to disable tools for",
"name": "GHOSTFOLIO_DISABLED_TAGS"
},
{
"description": "Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
"default": "INFO",
"name": "LOG_LEVEL"
},
{
"description": "Enable rate limiting",
"default": "false",
"name": "RATE_LIMIT_ENABLED"
},
{
"description": "Maximum requests per rate limit window",
"default": "60",
"name": "RATE_LIMIT_MAX_REQUESTS"
},
{
"description": "Rate limit window in minutes",
"default": "1",
"name": "RATE_LIMIT_WINDOW_MINUTES"
},
{
"description": "Enable FastMCP tool search transform",
"default": "false",
"name": "TOOL_SEARCH_ENABLED"
},
{
"description": "Tool search strategy (bm25 or regex)",
"default": "bm25",
"name": "TOOL_SEARCH_STRATEGY"
},
{
"description": "Maximum tool search results returned by search_tools",
"default": "5",
"name": "TOOL_SEARCH_MAX_RESULTS"
},
{
"description": "Port for HTTP server (default: 8000)",
"default": "8000",
"name": "MCP_HTTP_PORT"
},
{
"description": "MCP transport type (http for HTTP, stdio for stdio)",
"value": "http",
"name": "MCP_TRANSPORT"
}
]
},
{
"registryType": "oci",
"identifier": "ghcr.io/mhajder/ghostfolio-mcp:1.6.0",
"transport": {
"type": "streamable-http",
"url": "http://localhost:{MCP_HTTP_PORT}/mcp"
},
"runtimeArguments": [
{
"description": "Port mapping for HTTP transport",
"isRequired": true,
"value": "{MCP_HTTP_PORT}:8000",
"type": "named",
"name": "-p"
}
],
"environmentVariables": [
{
"description": "Ghostfolio base URL (e.g., https://domain.tld:3333)",
"isRequired": true,
"name": "GHOSTFOLIO_URL"
},
{
"description": "Ghostfolio API token for authentication",
"isRequired": true,
"isSecret": true,
"name": "GHOSTFOLIO_TOKEN"
},
{
"description": "Verify SSL certificates (true/false)",
"default": "true",
"name": "GHOSTFOLIO_VERIFY_SSL"
},
{
"description": "Request timeout in seconds",
"default": "30",
"name": "GHOSTFOLIO_TIMEOUT"
},
{
"description": "Enable read-only mode to restrict write operations",
"default": "false",
"name": "READ_ONLY_MODE"
},
{
"description": "Comma-separated list of tags to disable tools for",
"name": "GHOSTFOLIO_DISABLED_TAGS"
},
{
"description": "Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
"default": "INFO",
"name": "LOG_LEVEL"
},
{
"description": "Enable rate limiting",
"default": "false",
"name": "RATE_LIMIT_ENABLED"
},
{
"description": "Maximum requests per rate limit window",
"default": "60",
"name": "RATE_LIMIT_MAX_REQUESTS"
},
{
"description": "Rate limit window in minutes",
"default": "1",
"name": "RATE_LIMIT_WINDOW_MINUTES"
},
{
"description": "Enable FastMCP tool search transform",
"default": "false",
"name": "TOOL_SEARCH_ENABLED"
},
{
"description": "Tool search strategy (bm25 or regex)",
"default": "bm25",
"name": "TOOL_SEARCH_STRATEGY"
},
{
"description": "Maximum tool search results returned by search_tools",
"default": "5",
"name": "TOOL_SEARCH_MAX_RESULTS"
},
{
"description": "Port for HTTP server (default: 8000)",
"default": "8000",
"name": "MCP_HTTP_PORT"
}
]
}
]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-08-19T19:57:48.901515Z",
"publishedAt": "2026-08-19T19:57:48.901515Z",
"updatedAt": "2026-08-19T19:57:48.901515Z",
"isLatest": true
}
}
}
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
MCP server
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.
The publisher's own address
https://github.com/mhajder/ghostfolio-mcp
The address the publisher put in their registry record, printed as they wrote it. Nobody here has opened it.