Files
jarca-ledger-mcp/docs/batches/bat-015_20260707_docker-network-mcp-deployment/implementation.md
T
Jarca 2ccfc9c064 feat: deploy jarca ledger network mcp service
- add Docker deployment for independent jarca-ledger container
- enable FastMCP streamable-http runtime configuration
- document dcy-013, REQ-019, and BAT-015 verification evidence
- update structure/runtime baselines and deployment runbook
2026-07-07 23:04:42 +09:00

1.9 KiB

BAT-015 Implementation

Code changes

  • jarca_ledger_mcp/adapters/mcp/server.py
    • Added McpRuntimeConfig dataclass.
    • Added env parsing for JARCA_MCP_TRANSPORT, JARCA_MCP_HOST, JARCA_MCP_PORT, JARCA_MCP_STREAMABLE_HTTP_PATH, JARCA_MCP_SSE_PATH, JARCA_MCP_MESSAGE_PATH, JARCA_MCP_STATELESS_HTTP.
    • Instantiates FastMCP with configured host/port/path values.
    • Calls mcp.run(transport=_runtime_config.transport).
  • tests/test_mcp_http_runtime.py
    • Added config tests for default stdio, streamable-http env, and invalid transport rejection.

Deployment files

  • Dockerfile
    • Builds jarca-ledger:latest from python:3.12-slim.
    • Installs .[dashboard] dependencies.
    • Exposes port 8000 and runs jarca-ledger-mcp.
    • Adds TCP healthcheck against 127.0.0.1:${JARCA_MCP_PORT}.
  • .dockerignore
    • Excludes .env, DBs, financial source files, tests/docs/scripts not needed in image, and local artifacts.
  • docker-compose.yml
    • Defines container_name: jarca-ledger.
    • Maps 8000:8000.
    • Mounts /volume1/docker/jarca-ledger/data:/data.
    • Sets streamable-http MCP env.
    • Uses restart: unless-stopped.

Data migration implementation

  1. Created a consistent source snapshot inside the old jarca container using SQLite backup API.
  2. Copied snapshot to the host temp path.
  3. Backed up the initial empty jarca-ledger DB under /data/backups/pre_migration_empty_20260705152129.sqlite3.
  4. Stopped jarca-ledger, removed WAL/SHM sidecars, copied the snapshot to /data/ledger.sqlite3, normalized permissions, and restarted.
  5. Waited for Docker health to become healthy.

Documentation changes

  • Added docs/runbooks/docker-network-mcp-deploy.md.
  • Added this StagePilot post-implementation trace: dcy-013, REQ-019, BAT-015.
  • Updated docs/project-structure.md and docs/runtime-flows.md to include Docker/network MCP runtime.