Skip to main content

MCP server for JACTUS - enables AI assistants to work with the JACTUS financial contract library

Project description

JACTUS MCP Server

Standalone MCP server for JACTUS — Enables AI assistants like Claude Code to directly access JACTUS financial contract simulation capabilities.

What is this?

Model Context Protocol (MCP) is a protocol that allows AI assistants to interact with external tools. This package gives Claude (and other MCP-compatible assistants) the ability to discover, validate, and simulate all 18 ACTUS financial contract types powered by JACTUS.

Installation

pip install jactus-mcp

This installs the MCP server and pulls jactus as a dependency automatically.

Download Docs & Examples

After installing, optionally download JACTUS documentation and examples from GitHub:

jactus-mcp setup

This downloads the matching version's docs/ and examples/ into ~/.jactus-mcp/data/. You can also specify a tag:

jactus-mcp setup --tag v0.2.0   # specific version
jactus-mcp setup --force         # re-download
jactus-mcp status                # check what's downloaded
jactus-mcp clean                 # remove downloaded data

From GitHub

pip install git+https://github.com/pedronahum/JACTUS-MCP.git

For Development

git clone https://github.com/pedronahum/JACTUS-MCP.git
cd JACTUS-MCP
pip install -e ".[dev]"

Configuration

Claude Code

Add to your Claude Code MCP settings (.mcp.json or settings):

{
  "mcpServers": {
    "jactus": {
      "command": "jactus-mcp"
    }
  }
}

Or using Python module:

{
  "mcpServers": {
    "jactus": {
      "command": "python",
      "args": ["-m", "jactus_mcp"]
    }
  }
}

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "jactus": {
      "command": "jactus-mcp"
    }
  }
}

Transport Options

# Default: stdio transport (for local clients)
jactus-mcp
# or
python -m jactus_mcp

# Streamable HTTP transport (for remote clients)
python -m jactus_mcp --transport streamable-http

Features

Core Tools (always available)

These tools work with just pip install jactus-mcp — no source tree needed:

Tool Description
jactus_list_contracts List all 18 contract types by category
jactus_get_contract_info Get detailed info about a contract type
jactus_get_contract_schema Get required/optional parameters for all 18 types
jactus_get_event_types List all ACTUS event types
jactus_list_risk_factor_observers List all risk factor observer types
jactus_simulate_contract Simulate a contract and get structured cash flows
jactus_validate_attributes Validate contract attributes before simulation
jactus_compute_risk Compute DV01, delta, gamma, PV01 risk metrics
jactus_simulate_portfolio Simulate a portfolio with aggregation
jactus_get_topic_guide Structured guides on 7 topics
jactus_get_quick_start Built-in PAM quick start example
jactus_health_check Verify installation and JACTUS availability
jactus_get_version_info Version information

Docs & Example Tools (requires setup)

These tools require JACTUS docs/examples. Enable them with jactus-mcp setup:

Tool Description
jactus_search_docs Search across JACTUS documentation
jactus_get_doc_structure Browse documentation files and headers
jactus_list_examples List Python scripts and notebooks
jactus_get_example Retrieve example source code
jactus_run_example Execute an example

Alternatively, point to a local JACTUS checkout:

export JACTUS_ROOT=/path/to/JACTUS

MCP Resources

Resource URI Description
jactus://docs/architecture System architecture guide
jactus://docs/pam PAM contract walkthrough
jactus://docs/derivatives Derivative contracts guide
jactus://docs/readme Project overview
jactus://contract/{type} Dynamic contract info + schema

MCP Prompts

Prompt Description
create_contract Guide to create a new contract
troubleshoot_error Help troubleshoot errors
understand_contract Explain a contract type
compare_contracts Compare two contract types

Quick Example

With the MCP server running, ask Claude:

"Simulate a $100k PAM loan at 5% interest maturing in 1 year"

Claude will:

  1. Call jactus_get_contract_schema("PAM") to get required fields
  2. Call jactus_simulate_contract with the attributes
  3. Return structured cash flow events (IED, IP, MD) with payoff amounts

Contract Types

JACTUS implements all 18 ACTUS contract types:

  • Principal: PAM, LAM, LAX, NAM, ANN, CLM
  • Non-Principal: UMP, CSH, STK
  • Exotic: COM
  • Derivatives: FXOUT, OPTNS, FUTUR, SWPPV, SWAPS, CAPFL, CEG, CEC

Development

Running Tests

# Unit tests
pytest tests/ -v --ignore=tests/test_mcp_integration.py

# Integration tests (requires MCP stdio client)
pytest tests/test_mcp_integration.py -v

# All tests
pytest tests/ -v

Architecture

JACTUS-MCP/
├── src/jactus_mcp/
│   ├── __init__.py            # Package version
│   ├── __main__.py            # python -m jactus_mcp entry point
│   ├── server.py              # FastMCP server (tools, resources, prompts)
│   ├── models.py              # Pydantic response models
│   └── tools/
│       ├── _utils.py          # Shared utilities (get_jactus_root, type conversion)
│       ├── contracts.py       # Contract discovery & schema (18 types)
│       ├── simulate.py        # Contract simulation
│       ├── examples.py        # Example retrieval & execution
│       ├── validation.py      # Attribute validation
│       ├── documentation.py   # Documentation search & topic guides
│       ├── risk.py            # Risk analytics (DV01, delta, gamma)
│       └── system.py          # Health checks & version info
├── tests/                     # Comprehensive test suite
├── pyproject.toml             # Package configuration
└── README.md

License

Apache License 2.0

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jactus_mcp-0.2.0.tar.gz (49.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jactus_mcp-0.2.0-py3-none-any.whl (46.1 kB view details)

Uploaded Python 3

File details

Details for the file jactus_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: jactus_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jactus_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f1a031b4f1aa81d3c9ba4be8ced0de7adb4d10cba5e15562713f591f4fe040ea
MD5 75703f9de79ff2f2aa53c68c76d119aa
BLAKE2b-256 c361afb3033c94ee9ae53da4c683a371bc03a5f575d4822ad91b6ad66b2f719d

See more details on using hashes here.

Provenance

The following attestation bundles were made for jactus_mcp-0.2.0.tar.gz:

Publisher: publish.yml on pedronahum/JACTUS-MCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jactus_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: jactus_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 46.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jactus_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 541cbbf8df18719d17bf73b6153e9b8cba2bf24b5555160adda9dbdebea191b4
MD5 aaafa5170ddedb1cbf5a3cff6f7bfa37
BLAKE2b-256 1873c92f97f929d7725ac6cabc78f10bdfed67ca3e56b20b8327dfb9992fc425

See more details on using hashes here.

Provenance

The following attestation bundles were made for jactus_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on pedronahum/JACTUS-MCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page