Actual Budget MCP Server for VS Code
io.github.s-stefanov/actual-mcp
MCP server exposing Actual Budget accounts, transactions, budgets and reporting to LLM assistants.
client:VS Code
transport:stdio
runtime:npm
Install Actual Budget MCP Server in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "actual-server-url",
"description": "ACTUAL_SERVER_URL",
"password": true
},
{
"type": "promptString",
"id": "actual-password",
"description": "ACTUAL_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "actual-budget-sync-id",
"description": "ACTUAL_BUDGET_SYNC_ID",
"password": true
},
{
"type": "promptString",
"id": "actual-data-dir",
"description": "ACTUAL_DATA_DIR",
"password": true
},
{
"type": "promptString",
"id": "actual-budget-encryption-password",
"description": "ACTUAL_BUDGET_ENCRYPTION_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "actual-sync-ttl-ms",
"description": "ACTUAL_SYNC_TTL_MS",
"password": true
}
],
"servers": {
"actual-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"actual-mcp"
],
"env": {
"ACTUAL_SERVER_URL": "${input:actual-server-url}",
"ACTUAL_PASSWORD": "${input:actual-password}",
"ACTUAL_BUDGET_SYNC_ID": "${input:actual-budget-sync-id}",
"ACTUAL_DATA_DIR": "${input:actual-data-dir}",
"ACTUAL_BUDGET_ENCRYPTION_PASSWORD": "${input:actual-budget-encryption-password}",
"ACTUAL_SYNC_TTL_MS": "${input:actual-sync-ttl-ms}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs