[Feature] MCP server for AI 😛 #2135

Closed
opened 2026-02-28 20:04:21 -06:00 by GiteaMirror · 7 comments
Owner

Originally created by @Benjythebee on GitHub (May 16, 2025).

Verified feature request does not already exist?

  • I have searched and found no existing issue

💻

  • Would you like to implement this feature?

Pitch: what problem are you trying to solve?

I hope I'm not too cringe. We could implement some MCP API to let a custom AI analyze our spendings and maybe even tell us about improvements etc...

Those of us with Self-hosted LLMs would love this.

I wish I had the time in the world to implement this

Describe your ideal solution to this problem

No response

Teaching and learning

Probably some documentation on how to configure the LLM interface (for example WebOpenUi) to recognise and use the actual api

Originally created by @Benjythebee on GitHub (May 16, 2025). ### Verified feature request does not already exist? - [x] I have searched and found no existing issue ### 💻 - [ ] Would you like to implement this feature? ### Pitch: what problem are you trying to solve? I hope I'm not too cringe. We could implement some MCP API to let a custom AI analyze our spendings and maybe even tell us about improvements etc... Those of us with Self-hosted LLMs would love this. I wish I had the time in the world to implement this ### Describe your ideal solution to this problem _No response_ ### Teaching and learning Probably some documentation on how to configure the LLM interface (for example WebOpenUi) to recognise and use the actual api
GiteaMirror added the feature label 2026-02-28 20:04:21 -06:00
Author
Owner

@github-actions[bot] commented on GitHub (May 16, 2025):

Thanks for sharing your idea!

This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

@github-actions[bot] commented on GitHub (May 16, 2025): :sparkles: Thanks for sharing your idea! :sparkles: This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍! <!-- feature-auto-close-comment -->
Author
Owner

@jfdoming commented on GitHub (May 16, 2025):

Related to https://github.com/actualbudget/actual/issues/4466. We have users that are opposed to AI capabilities in a budgeting app on principle, so I'm not sure we would offer these in the main app. But we are working hard on the ability to write and install external plugins, and this sounds like a prime use-case! Stay tuned for more news on that front in upcoming releases.

@jfdoming commented on GitHub (May 16, 2025): Related to https://github.com/actualbudget/actual/issues/4466. We have users that are opposed to AI capabilities in a budgeting app on principle, so I'm not sure we would offer these in the main app. But we are working hard on the ability to write and install external plugins, and this sounds like a prime use-case! Stay tuned for more news on that front in upcoming releases.
Author
Owner

@Benjythebee commented on GitHub (May 16, 2025):

Yeah that makes lots of sense, I think external plugins is a brilliant idea

@Benjythebee commented on GitHub (May 16, 2025): Yeah that makes lots of sense, I think external plugins is a brilliant idea
Author
Owner

@Soleone commented on GitHub (Jul 30, 2025):

We have users that are opposed to AI capabilities in a budgeting app on principle

Using AI should be an optional feature, so everyone can decide for themselves to use it or not. Besides that, with MCP you can also use a locally hosted AI to ensure the data completely stays private.

MCP and AI based handling of this type of text based data makes a LOT of sense. I'm really missing it right now. I would like to be able to copy and paste statements from my bank and hand it over to AI which reads my state in Actual and then enters the data accordingly.

@Soleone commented on GitHub (Jul 30, 2025): > We have users that are opposed to AI capabilities in a budgeting app on principle Using AI should be an optional feature, so everyone can decide for themselves to use it or not. Besides that, with MCP you can also use a locally hosted AI to ensure the data completely stays private. MCP and AI based handling of this type of text based data makes a LOT of sense. I'm really missing it right now. I would like to be able to copy and paste statements from my bank and hand it over to AI which reads my state in Actual and then enters the data accordingly.
Author
Owner

@mswdev commented on GitHub (Nov 21, 2025):

Would love to see this! Especially for the API documentation.

@mswdev commented on GitHub (Nov 21, 2025): Would love to see this! Especially for the API documentation.
Author
Owner

@faultoverload commented on GitHub (Nov 25, 2025):

I found these 2 implementations of MCP servers for Actual Budget that already exist. I plan to try and integrate them into my Open WebUI setup and will report back.

https://github.com/agigante80/actual-mcp-server

https://github.com/s-stefanov/actual-mcp

@faultoverload commented on GitHub (Nov 25, 2025): I found these 2 implementations of MCP servers for Actual Budget that already exist. I plan to try and integrate them into my Open WebUI setup and will report back. https://github.com/agigante80/actual-mcp-server https://github.com/s-stefanov/actual-mcp
Author
Owner

@faultoverload commented on GitHub (Nov 26, 2025):

I found these 2 implementations of MCP servers for Actual Budget that already exist. I plan to try and integrate them into my Open WebUI setup and will report back.

https://github.com/agigante80/actual-mcp-server

https://github.com/s-stefanov/actual-mcp

I got both working and interacted with them with both Claude 4.5 and GPT 5.1 and they both performed decently. I had a lot of issues getting specific transaction data but that may just require better prompts. Here are my compose services if anyone wants to try for themselves. Note the sstefanov version isnt using the latest actual node package so you may need to follow this comment to get it working.

https://github.com/s-stefanov/actual-mcp/issues/25#issuecomment-3327378247


services:
  mcp-server:
    image: ghcr.io/agigante80/actual-mcp-server:development
    container_name: actual-mcp-server
    user: "${PUID}:${PGID}"
    ports:
      - 3600:3600
    environment:
      # Use internal Docker network to reach Actual Budget
      - ACTUAL_SERVER_URL=${ACTUAL_SERVER_URL}
      - ACTUAL_PASSWORD=${ACTUAL_PASSWORD}
      - ACTUAL_BUDGET_SYNC_ID=${ACTUAL_BUDGET_SYNC_ID}
      - MCP_BRIDGE_PORT=3600
      - MCP_BRIDGE_DATA_DIR=/data
      - MCP_TRANSPORT_MODE=--http
      - MCP_BRIDGE_BIND_HOST=0.0.0.0
      - MCP_ENABLE_HTTPS=${MCP_ENABLE_HTTPS:-false}
      - DEBUG=true
    volumes:
      - ${DATA_ROOT}/actual-testing:/data
    restart: unless-stopped
    networks:
      - internal_network
  mcp-server-sstefanov:
    build:
      context: ../../build/actual-mcp-sstefanov
      dockerfile: Dockerfile
    image: actual-mcp-sstefanov:local
    container_name: actual-mcp-stefanov
    user: "${PUID}:${PGID}"
    ports:
      - 3000:3000
    environment:
      - TZ=${TZ}
      - ACTUAL_SERVER_URL=${ACTUAL_SERVER_URL}
      - ACTUAL_PASSWORD=${ACTUAL_PASSWORD}
      - ACTUAL_BUDGET_SYNC_ID=${ACTUAL_BUDGET_SYNC_ID}
      - BEARER_TOKEN=${MCP_SSE_AUTHORIZATION}
    volumes:
      - ${DATA_ROOT}/actual-testing:/data
    command: ["--sse", "--enable-write", "--enable-bearer"]
    restart: unless-stopped
    networks:
      - internal_network
@faultoverload commented on GitHub (Nov 26, 2025): > I found these 2 implementations of MCP servers for Actual Budget that already exist. I plan to try and integrate them into my Open WebUI setup and will report back. > > https://github.com/agigante80/actual-mcp-server > > https://github.com/s-stefanov/actual-mcp I got both working and interacted with them with both Claude 4.5 and GPT 5.1 and they both performed decently. I had a lot of issues getting specific transaction data but that may just require better prompts. Here are my compose services if anyone wants to try for themselves. Note the sstefanov version isnt using the latest actual node package so you may need to follow this comment to get it working. https://github.com/s-stefanov/actual-mcp/issues/25#issuecomment-3327378247 ``` services: mcp-server: image: ghcr.io/agigante80/actual-mcp-server:development container_name: actual-mcp-server user: "${PUID}:${PGID}" ports: - 3600:3600 environment: # Use internal Docker network to reach Actual Budget - ACTUAL_SERVER_URL=${ACTUAL_SERVER_URL} - ACTUAL_PASSWORD=${ACTUAL_PASSWORD} - ACTUAL_BUDGET_SYNC_ID=${ACTUAL_BUDGET_SYNC_ID} - MCP_BRIDGE_PORT=3600 - MCP_BRIDGE_DATA_DIR=/data - MCP_TRANSPORT_MODE=--http - MCP_BRIDGE_BIND_HOST=0.0.0.0 - MCP_ENABLE_HTTPS=${MCP_ENABLE_HTTPS:-false} - DEBUG=true volumes: - ${DATA_ROOT}/actual-testing:/data restart: unless-stopped networks: - internal_network mcp-server-sstefanov: build: context: ../../build/actual-mcp-sstefanov dockerfile: Dockerfile image: actual-mcp-sstefanov:local container_name: actual-mcp-stefanov user: "${PUID}:${PGID}" ports: - 3000:3000 environment: - TZ=${TZ} - ACTUAL_SERVER_URL=${ACTUAL_SERVER_URL} - ACTUAL_PASSWORD=${ACTUAL_PASSWORD} - ACTUAL_BUDGET_SYNC_ID=${ACTUAL_BUDGET_SYNC_ID} - BEARER_TOKEN=${MCP_SSE_AUTHORIZATION} volumes: - ${DATA_ROOT}/actual-testing:/data command: ["--sse", "--enable-write", "--enable-bearer"] restart: unless-stopped networks: - internal_network ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2135