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:
65
JOURNAL.md
65
JOURNAL.md
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user