-
-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathpackage.json
More file actions
108 lines (108 loc) · 10.2 KB
/
Copy pathpackage.json
File metadata and controls
108 lines (108 loc) · 10.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{
"name": "actual-mcp-server",
"displayName": "Actual MCP Server",
"version": "0.16.2",
"engines": {
"node": ">=22.0.0",
"npm": ">=10.0.0"
},
"description": "MCP server with 74 tools for AI-driven financial management with Actual Budget. HTTP and stdio transports for LibreChat, Claude Desktop, Cursor, VS Code, Gemini CLI",
"homepage": "https://github.com/agigante80/actual-mcp-server#readme",
"repository": {
"type": "git",
"url": "https://github.com/agigante80/actual-mcp-server"
},
"main": "dist/src/index.js",
"bin": {
"actual-mcp-server": "./bin/actual-mcp-server.js"
},
"files": [
"bin/",
"dist/",
"README.md",
"LICENSE"
],
"type": "module",
"scripts": {
"build": "tsc",
"dev": "npm run build && node scripts/register-tsconfig-paths.js -- --debug",
"start": "node dist/src/index.js",
"verify-tools": "npm run build && node scripts/verify-tools.js",
"check:coverage": "node scripts/list-actual-api-methods.mjs",
"direct-sync": "node scripts/direct-sync/bank-sync-direct.mjs",
"test:unit-js": "node tests/unit/transactions_create.test.js && node tests/unit/generated_tools.smoke.test.js && node tests/unit/schema_validation.test.js && node tests/unit/schema_json_openai_compat.test.js && node tests/unit/config_https_validation.test.js && node tests/unit/config_data_dir.test.js && node tests/unit/config_drift.test.js && node tests/unit/port_alignment.test.js && node tests/unit/dockerfile_data_dir_alignment.test.js && node tests/unit/unraid_template_alignment.test.js && node tests/unit/entrypoint_invariants.test.js && node tests/unit/e2e_spec_collection.test.js && node tests/unit/compose_profile_sync.test.js && node tests/unit/advertised_tools_sync.test.js && node tests/unit/knip_config.test.js && node tests/unit/readme_stats_sync.test.js && node tests/unit/config_insecure_upstream.test.js && node tests/unit/workflow_release_guards.test.js && node tests/unit/report_train_failure.test.js && node tests/unit/unit_chain_membership.test.js && node tests/unit/api_surface_drift.test.js && node tests/unit/write_effect_audit_staleness.test.js && node tests/unit/write_effect_audit_membership.test.js && node tests/unit/tool_annotations.test.js && node tests/unit/tool_id_schema_drift.test.js && node tests/unit/api_coverage_baseline.test.js && node tests/unit/train_preflight.test.js && node tests/unit/verify_published_artifacts.test.js && node tests/unit/report_train_stale.test.js && node tests/unit/stdio_framing_check.test.js && node tests/unit/server_info.test.js && node tests/unit/transfers_create.test.js && node tests/unit/bot_target_branch.test.js && node tests/unit/auth_posture.test.js && node tests/unit/auth_posture_wiring.test.js && node tests/unit/auth-acl.test.js && node tests/unit/bug76.test.js && node tests/unit/budgets_setAmount.test.js && node tests/unit/budgets_hold_for_next_month.test.js && node tests/unit/budgets_transfer.test.js && node tests/unit/transactions_uncategorized.test.js && node tests/unit/httpServer_session_init.test.js && node tests/unit/httpServer_session_not_found.test.js && node tests/unit/manual_mcp_client_retry.test.js && node tests/unit/manual_mcp_client_session.test.js && node tests/unit/manual_mcp_client_circuit.test.js && node tests/unit/manual_runner_killswitch.test.js && node tests/unit/adapter_auth_rate_limit.test.js && node tests/unit/adapter_session_reuse.test.js && node tests/unit/retry_classifier.test.js && node tests/unit/adapter_module_surface.test.js && node tests/unit/adapter_nonidempotent_no_retry.test.js && node tests/unit/pool_liveness.test.js && node tests/unit/pool_shutdown_all.test.js && node tests/unit/query_where_operators.test.js && node tests/unit/query_run_validation.test.js && node tests/unit/adapter_with_write_session.test.js && node tests/unit/category_groups_delete.test.js && node tests/unit/rules_delete.test.js && node tests/unit/schedules_delete.test.js && node tests/unit/accounts_delete.test.js && node tests/unit/update_tools_not_found.test.js && node tests/unit/accounts_close.test.js && node tests/unit/accounts_reopen.test.js && node tests/unit/payees_delete.test.js && node tests/unit/payees_merge.test.js && node tests/unit/rules_create_or_update.test.js && node tests/unit/unhandled-rejection.test.js && node tests/unit/rejection-allowlist-purity.test.js && node tests/unit/httpServer_bearer_auth.test.js && node tests/unit/httpServer_oidc_audience.test.js && node tests/unit/httpServer_oidc_auth_verification.test.js && node tests/unit/httpServer_oidc_jwks_discovery.test.js && node tests/unit/httpServer_body_limit.test.js && node tests/unit/httpServer_bind_host.test.js && node tests/unit/adapter_write_pool_cooperation.test.js && node tests/unit/adapter_drain_listing_cache.test.js && node tests/unit/budget_acl_enforcement.test.js && node tests/unit/budget_preference_store.test.js && node tests/unit/budget_preference_restore.test.js && node tests/unit/tags_list.test.js && node tests/unit/tags_create.test.js && node tests/unit/tags_update.test.js && node tests/unit/tags_delete.test.js && node tests/unit/notes_get.test.js && node tests/unit/notes_update.test.js && node tests/unit/payees_common_list.test.js && node tests/unit/transactions_update_guard.test.js && node tests/unit/transactions_update_splits.test.js && node tests/unit/entities_search.test.js && node tests/unit/transactions_import_schema.test.js && node tests/unit/tool_schema_shape.test.js && node tests/unit/zod_error_format.test.js && node tests/unit/tool_count_sync.test.js && node tests/unit/stdio_transport.test.js && node tests/unit/stdio_budget_switch.test.js && node tests/unit/logger_structured.test.js && node tests/unit/logger_redaction.test.js && node tests/unit/logger_correlation.test.js && node tests/unit/check_coverage.test.js && node tests/unit/adapter_op_timeout.test.js && node tests/unit/adapter_write_queue_wakeup.test.js && node tests/unit/ci_workflow_guards.test.js && node tests/unit/node_version_guard.test.js && node tests/unit/node_version_drift.test.js && node tests/unit/observability_smoke.test.js && node tests/unit/residue_pattern.test.js && node tests/unit/dual_transport_gate.test.js && node tests/unit/manual_assertions_use_helper.test.js && node tests/unit/server_version_guard.test.js && node tests/unit/payee_rules_reference_filter.test.js && node tests/unit/oidc_metadata_discovery.test.js && node tests/unit/httpServer_oauth_metadata_route.test.js && node tests/unit/httpServer_mcp_info_route.test.js && node tests/unit/residue_sweep_balance_account.test.js && node tests/unit/tool_factory.test.js && node tests/unit/budget_registry_parse.test.js && node tests/unit/preferences_get.test.js && node tests/unit/budgets_export.test.js && node tests/unit/budgets_import.test.js && node tests/unit/budgets_import_syncid.test.js && node tests/unit/budget_acl_dynamic.test.js && node tests/unit/budget_acl_identity_map.test.js && node tests/unit/budget_acl_userinfo.test.js && node tests/unit/acl_e2e_fixture_contract.test.js && node tests/unit/budget_acl_middleware.test.js && node tests/unit/rules_stage.test.js",
"test:adapter": "npm run build && node dist/src/tests_adapter_runner.js",
"test:e2e": "npx playwright test",
"test:e2e:docker": "./tests/e2e/run-docker-e2e.sh",
"test:e2e:docker:smoke": "./tests/e2e/run-docker-e2e.sh smoke",
"test:e2e:docker:full": "./tests/e2e/run-docker-e2e.sh full",
"test:all": "npm run test:adapter && npm run test:unit-js && npm run test:e2e:docker:smoke",
"test:mcp-client": "npm run build && MCP_ALLOW_UNAUTHENTICATED=true node scripts/register-tsconfig-paths.js -- --http --test-mcp-client",
"test:integration": "MCP_TEST_LEVEL=sanity node tests/manual/index.js",
"test:integration:sanity": "MCP_TEST_LEVEL=sanity node tests/manual/index.js",
"test:integration:smoke": "MCP_TEST_LEVEL=smoke node tests/manual/index.js",
"test:integration:normal": "MCP_TEST_LEVEL=normal node tests/manual/index.js",
"test:integration:normal:stdio": "MCP_TEST_TRANSPORT=stdio MCP_TEST_LEVEL=normal node tests/manual/index.js",
"test:integration:extended": "MCP_TEST_LEVEL=extended node tests/manual/index.js",
"test:integration:extended:stdio": "MCP_TEST_TRANSPORT=stdio MCP_TEST_LEVEL=extended node tests/manual/index.js",
"test:integration:full": "MCP_TEST_LEVEL=full node tests/manual/index.js",
"test:integration:full:stdio": "MCP_TEST_TRANSPORT=stdio MCP_TEST_LEVEL=full node tests/manual/index.js",
"test:integration:cleanup": "MCP_TEST_LEVEL=cleanup node tests/manual/index.js",
"deploy:full": "bash scripts/deploy-and-test.sh full",
"deploy:smoke": "bash scripts/deploy-and-test.sh smoke",
"docs:sync": "node scripts/version-bump.js sync",
"version:current": "cat VERSION",
"version:dev": "node scripts/version-dev.js",
"version:bump": "node scripts/version-bump.js",
"version:check": "node scripts/version-check.js",
"release:major": "npm run version:bump -- major",
"release:minor": "npm run version:bump -- minor",
"release:patch": "npm run version:bump -- patch",
"tool-count": "node scripts/tool-count.mjs",
"config-drift": "npm run build && node scripts/config-drift.mjs",
"node-version-drift": "node scripts/node-version-drift.mjs",
"typecheck:e2e": "tsc --noEmit --project tests/e2e/tsconfig.json",
"knip": "knip",
"actionlint": "bash scripts/install-actionlint.sh && ./actionlint -shellcheck= -color",
"audit:write-effect": "node scripts/check-write-effect-audit.mjs"
},
"dependencies": {
"@actual-app/api": "^26.8.1",
"@modelcontextprotocol/sdk": "^1.30.0",
"debug": "^4.4.3",
"dotenv": "^17.4.2",
"express": "^5.2.1",
"fuse.js": "^7.4.2",
"jose": "^6.2.8",
"mcp-auth": "^0.2.0",
"winston": "^3.18.3",
"winston-daily-rotate-file": "^5.0.0",
"zod": "^4.4.3"
},
"optionalDependencies": {
"prom-client": "*"
},
"devDependencies": {
"@playwright/test": "^1.60.0",
"@types/express": "^5.0.3",
"@types/node": "^26.1.0",
"knip": "^6.32.0",
"node-fetch": "^3.3.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^7.0.2"
},
"license": "MIT",
"keywords": [
"mcp",
"model-context-protocol",
"actual-budget",
"actual-finance",
"librechat",
"claude-desktop",
"cursor",
"budget",
"finance",
"ai"
],
"author": "agigante80"
}