Skip to main content

English · 简体中文

An archival-style black-and-white photograph of a mathematician working at a chalkboard, with a constant Jacobian determinant and three distinct inputs mapping to one output.

Jacobian

An executable mathematical vocabulary for agents: discover one typed operation, run it, and compose its result.

CI PyPI npm Supported Python versions MIT license

Jacobian is an MCP server that gives AI agents a searchable vocabulary of typed mathematical operations. Every admitted operation is directly callable under its operation ID, with its owner-local request schema and canonical result schema. math.find remains available for semantic catalog search and exact contract inspection; math.run remains temporarily available while the direct tool migration is evaluated. The same mathematical library is also available through a CLI and native Python API.

Each operation establishes one stable, reusable mathematical postcondition rather than prescribing a workflow or proof strategy. Results are exact where claimed and make approximation, incompleteness, or uncertainty explicit.

Jacobian's hypothesis is that mathematical reasoning benefits from an executable vocabulary of semantically scoped, bounded operations. Rather than exposing large domain solvers or precomposed workflows, Jacobian exposes mathematical primitives that agents can search for and compose into solutions beyond what any individual operation was designed to solve. The library supplies trustworthy mathematical moves; the reasoning model decides which moves to make, how to combine their results, and when to stop. Keeping the operations semantically narrow and domain-owned preserves that search space instead of baking one proof strategy or workflow into the tools themselves.

See Executable mathematical vocabulary for what semantic atomicity means and how the operation vocabulary grows.

Quickstart

Set up Jacobian for your agents with a single command. The setup command requires Node.js 20.17+, 22.13+, or 23.5+ and uvx on your PATH.

npx jacobian@latest setup

Choose detected agents and review the changes before they are written. Setup does not install Node.js, Python, uv, or an agent. For automation, preview an explicit plan with npx jacobian@latest setup --codex --dry-run; use --yes only with explicit agent flags or --all.

Run the canonical Python MCP command without installing Jacobian globally:

uvx --from jacobian jacobian-mcp

Where an MCP host requires an npm command, the npm package is a deterministic carrier for that same command:

npx jacobian mcp

For a persistent installation:

python -m pip install jacobian
jacobian-mcp

That package includes Jacobian's exact maintained Python backend stack: SymPy, NetworkX, Z3, and Python-FLINT. A normal Python or npm installation therefore exposes the same built-in Python-backed operation portfolio. The tested binary-install contract is CPython 3.12 or 3.13 on glibc Linux x86-64; the release gate installs the built wheel and starts Jacobian on both Python versions. Other systems may have compatible upstream wheels, but are not part of the tested release contract yet. In particular, Alpine/musl cannot install the complete mandatory stack from PyPI.

The Python distribution contains the mathematical kernel, CLI, and MCP server. The npm package deterministically maps its exact package version to the corresponding uvx invocation.

Compute one bounded result

An ordinary operation returns mathematics first. For example, matrix.determinant.compute accepts one exact rational matrix and returns its determinant directly. Callers compose results by passing their typed values to a subsequent operation.

For a local terminal workflow, inspect the exact installed contract and run one of its examples with the CLI:

jacobian inspect integer.compute.extended_gcd
jacobian run integer.compute.extended_gcd --json '{"left":"84","right":"30"}'

The second command returns the gcd and Bézout coefficients as JSON. In an MCP host, call integer.compute.extended_gcd directly with {"left":"84","right":"30"}; the result is the gcd and coefficients, without an operation_id + payload dispatch envelope. Use math.find when semantic catalog search or exact contract inspection is useful. See Discover and invoke operations for that agent workflow.

Available mathematics

The built-in portfolio covers work in:

  • polynomial maps and polynomial algebra;
  • exact linear algebra;
  • graphs, paths, colorings, and isomorphism;
  • bounded SAT and SMT solving;
  • finite algebra, probability, geometry, and topology.

SAT and SMT operations use the maintained Z3 Python binding directly. Client tool search can discover their direct operation tools. Use math.find to search the mathematical vocabulary, browse an unfamiliar domain, or inspect an exact contract when that adds value beyond client-managed tool discovery.

See the domain operation library for the maintained operation portfolio and backend requirements.

Status

Jacobian 0.15.2 is pre-stable. Its published package and operation contracts describe the supported surface; experimental operation contracts may change between releases.

Documentation

Contributing

Jacobian uses Python 3.12, uv, and a small Makefile:

make setup
make handoff LANE=math TESTS=tests/math/graphs/test_graph_distance_matrix.py

Read CONTRIBUTING.md before changing code. It documents focused test commands, verification rules, documentation placement, and pull-request expectations.

License

MIT

Download files

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

Source Distribution

jacobian-0.15.2.tar.gz (5.2 MB view details)

Uploaded Source

Built Distribution

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

jacobian-0.15.2-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file jacobian-0.15.2.tar.gz.

File metadata

  • Download URL: jacobian-0.15.2.tar.gz
  • Upload date:
  • Size: 5.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jacobian-0.15.2.tar.gz
Algorithm Hash digest
SHA256 0b8e2ee2de72f0d9beb9744cec502f9b248b73c37ab544099a366bc2ad23e0fe
MD5 93e5c45194d01b08ee63bcb501287b22
BLAKE2b-256 9da66b223c55a26d80ea02a94e1dc7a3b072aff97daf729009b46df9ea851900

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacobian-0.15.2.tar.gz:

Publisher: release.yml on morluto/jacobian

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

File details

Details for the file jacobian-0.15.2-py3-none-any.whl.

File metadata

  • Download URL: jacobian-0.15.2-py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jacobian-0.15.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6f54f9825682a8d9a44d62e79e978b49aca09fcd363725ad0f432f1c43d1d883
MD5 f8d103b972f06dff116482d4c57758b6
BLAKE2b-256 3459a99ef9d933706739694202065f659ba24eaed3463ee4ed58881ee6fdeec9

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacobian-0.15.2-py3-none-any.whl:

Publisher: release.yml on morluto/jacobian

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

Release history Release notifications | RSS feed

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

This release

0.15.2 This release

2 files

0.15.1

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page