feat: add firefly-iii-mcp and paperless-mcp MCP servers

- Added firefly-iii-mcp (v1.3.0) for personal finance management
  - Uses npm package @firefly-iii-mcp/local instead of source build
  - Requires FIREFLY_III_BASE_URL and FIREFLY_III_PAT env vars
- Added paperless-mcp (v1.0.0) for document management
  - Requires PAPERLESS_URL and PAPERLESS_TOKEN CLI args
- Created wrapper scripts for Crush integration
- Updated docker-compose.yml with new services
- Updated .env.example with required environment variables
- Added Financial & Budgeting category to README.md

Both servers validated with MCP protocol handshake.

Working MCP servers count: 27

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
This commit is contained in:
Charles N Wyble
2026-02-27 10:10:35 -05:00
parent 1526af86d8
commit 855b6e1f22
10 changed files with 184 additions and 7 deletions

View File

@@ -1833,7 +1833,68 @@ Validated the 8 servers that "require config" to determine if MCP protocol layer
**Registry Location**: `git.knownelement.com/knel/knel-aimiddleware/<service>:latest`
**Files Added**:
- run.sh - Shell script for Docker registry management
---
## 2026-02-27
### [MCP Integration] firefly-iii-mcp and paperless-mcp Added
**Date/Time**: 2026-02-27 14:00:00 EST
**Work**: Added two new MCP servers for financial and document management
**What was done**:
1. **firefly-iii-mcp (NEW)**:
- Repository: https://github.com/etnperlong/firefly-iii-mcp
- Build approach: Used npm package `@firefly-iii-mcp/local` instead of building from source
- Reason: Source build failed due to Turborepo monorepo complexity with Bun
- Container size: ~200MB (node:22-alpine base)
- Version: 1.3.0
- MCP handshake: Validated successfully
- Environment variables: FIREFLY_III_BASE_URL, FIREFLY_III_PAT, FIREFLY_III_PRESET (optional)
2. **paperless-mcp (validated)**:
- Repository: https://github.com/nloui/paperless-mcp (already existed)
- Build: Already had Dockerfile, just needed validation
- Container size: ~300MB (Python-based)
- Version: 1.0.0
- MCP handshake: Validated successfully
- Configuration: PAPERLESS_URL and PAPERLESS_TOKEN passed as CLI args
3. **actual-mcp (already configured)**:
- Already existed in project with wrapper script
- Environment variables: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_BUDGET_SYNC_ID
**Validation Commands Used**:
```bash
# firefly-iii-mcp (requires env vars)
echo '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"protocolVersion":"2024-11-05","clientInfo":{"name":"test","version":"1.0.0"}},"id":1}' | \
timeout 15 docker run --rm -i -e FIREFLY_III_PAT=dummy -e FIREFLY_III_BASE_URL=http://localhost:8080 kneldevstack-aimiddleware-firefly-iii-mcp
# paperless-mcp (requires CLI args)
echo '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"protocolVersion":"2024-11-05","clientInfo":{"name":"test","version":"1.0.0"}},"id":1}' | \
timeout 15 docker run --rm -i kneldevstack-aimiddleware-paperless-mcp http://localhost:8000 dummy-token
```
**Files Created**:
- dockerfiles/firefly-iii-mcp/Dockerfile
- mcp-firefly-iii-wrapper.sh
- mcp-paperless-wrapper.sh
**Files Modified**:
- scripts/CloneVendorRepos.sh (added firefly-iii-mcp repo)
- docker-compose.yml (added firefly-iii-mcp and paperless-mcp services)
- crush.json (added firefly-iii and paperless MCP entries)
- .env.example (added environment variables for all three servers)
- STATUS.md (updated working servers count to 27)
**Financial & Budgeting Category**:
Now has 3 working MCP servers:
1. firefly-iii-mcp - Personal finance management with Firefly III
2. actual-mcp - Budget tracking with Actual Budget
3. paperless-mcp - Document management for financial documents
**Pattern Applied**:
When npm package exists and works better than source build, prefer npm package installation for reliability and simplicity.
---