Algenta MCP Server

io.github.thyn-aiPublished by GitHub account thyn-aiv1.0.31Updated Nov 1, 2026

Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.

VerifiedStreamable HTTPWeb executableDatabasesDeveloper ToolsData & Analytics

Overview

AI-generated overview

Algenta's official MCP server for governed dataset queries, Monte Carlo simulations, and repository-intelligence patch planning and risk scoring.

What you can do
  • Register, list, inspect, refresh and delete datasets, and run governed exact queries, batch queries and read-only SQL reports
  • Save, test, browse, update and delete data connectors, including repository connectors and immutable snapshots
  • Run the repository chain: triage, decision plans, dependency-graph impact queries, patch simulation and applying patches to a branch or checkout
  • Auto-map tabular data to simulation payloads and run Monte Carlo simulations
  • Inspect the model catalog, tokenize text, count tokens and resolve Hugging Face artifact paths
When to use it
Useful when an assistant should answer questions over connected business data through governed queries rather than hand-written SQL, run risk simulations, or triage a repository and score a proposed patch before applying it.
Requirements
Either the remote endpoint or the local algenta-mcp package (pip install algenta-mcp, stdio by default). Tool execution needs a free community login: an API key in ALGENTA_API_KEY or an Authorization bearer header. ALGENTA_BASE_URL points at a self-hosted engine; the default is the hosted API.
Before you install
The API key is a secret and grants access to the organization's datasets and connectors. Connector configs hold source credentials, are encrypted at rest, and test/browse tools open real connections to those sources. Delete tools remove datasets and connectors, and apply_repository can commit patches to a branch or engine-side checkout. Data and queries are sent to the Algenta engine, which is closed source.

Installation

In SourceWeft

  1. Open Algenta MCP Server in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.thyn-ai%2Falgenta/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "algenta": {
      "type": "http",
      "url": "https://api.algenta.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

Algenta SDK

Python and TypeScript client libraries and the official MCP server for Algenta — self-hosted building blocks for AI applications.

[CI] [PyPI] [npm] [codecov] [OpenSSF Scorecard] [License: Apache-2.0] [All Contributors]

📖 Full documentation: GitHub Wiki

Docs · Python SDK · TypeScript SDK · MCP server · Integrations · Examples · Contributing

Custom Mojo kernels give Algenta its speed. Your team never writes a line of Mojo — the blocks speak Python and TypeScript. On your infrastructure, not ours. These SDKs are how Python and TypeScript call the engine: typed access to governed data queries, Monte Carlo simulations and recommendations, decision memory with execution receipts that pin the policy and schema snapshots each execution ran under, agent runs with human-in-the-loop approvals, managed connectors, and a full audit trail — enforced by the engine, never by client-side convention.

MCP server

MCP server (algenta-mcp) — the official MCP server for Algenta lives in THIS repository at packages/mcp/ (implementation: packages/mcp/algenta_mcp; stdio transport by default, Streamable HTTP optional). Install it with pip install algenta-mcp and run it as the algenta-mcp command; it is also on the official MCP Registry as io.github.thyn-ai/algenta. The framework integrations (LangChain, LlamaIndex, Vercel AI SDK, …) are what live in the companion repository thyn-ai/algenta-integrations — not the MCP server.

Introspection (initialize/tools/list) needs no credentials. Executing tools requires a free community login — device registration at algenta.ai (free): run algenta login, or create a key at https://app.algenta.ai/dashboard/api-keys, then set ALGENTA_API_KEY.

Installation

bash
pip install algenta-sdk       # Python 3.12+npm install algenta-sdk       # TypeScript / JavaScript, Node.js 18+

Quickstart

Both clients read ALGENTA_API_KEY from the environment and default to Algenta's hosted API at https://api.algenta.ai.

Python — note the import name is decision_engine (see Legacy names):

python
from decision_engine import AlgentaClient
client = AlgentaClient()  # reads ALGENTA_API_KEY; defaults to https://api.algenta.ai
datasets = client.list_datasets(search="orders", compact=True)summary = client.get_dataset_summary(datasets.datasets[0].dataset_id)result = client.query_with_metadata(    {        "dataset_id": summary.dataset_id,        "metric": {"hint": "gross_revenue"},        "aggregation": "sum",    })print(result.data.result)

TypeScript:

ts
import { AlgentaClient } from "algenta-sdk";
const client = new AlgentaClient(); // reads ALGENTA_API_KEY; defaults to https://api.algenta.ai
const datasets = await client.listDatasets({ search: "orders", compact: true });const summary = await client.getDatasetSummary(datasets.datasets[0].dataset_id);const result = await client.queryWithMetadata({  dataset_id: summary.dataset_id,  metric: { hint: "gross_revenue" },  aggregation: "sum",});console.log(result.data.result);

Self-hosted engine? Point the client at your own deployment — AlgentaClient(base_url="http://localhost:8000") in Python, new AlgentaClient({ baseUrl: "http://localhost:8000" }) in TypeScript — and use the API key provisioned by your operator. The self_hosted and air_gapped deployment profiles fail closed: they never silently fall back to Algenta's cloud. Framework integrations in thyn-ai/algenta-integrations take the opposite default on purpose: they are self-hosted-first, resolve their endpoint from ALGENTA_BASE_URL or an explicit base_url, and never default or fall back to the hosted API.

The full API surface — governed queries, connectors, simulations, jobs, triggers, agent runs, decisions, repository intelligence, and the TypeScript local Runtime facade — is documented in packages/python-sdk/README.md and packages/ts-sdk/README.md, with runnable projects in examples/. The MCP server lives in this repository (see MCP server above); framework integrations (LangChain, LlamaIndex, Vercel AI SDK, and more) live in the companion repository thyn-ai/algenta-integrations.

Errors, retries, and timeouts

Both SDKs raise the same exception taxonomy. Every error carries the HTTP status, the engine's machine-readable error_code, and — in Python — the engine-assigned request_id; validation failures additionally expose per-field details via field_errors (Python) / fieldErrors (TypeScript).

ExceptionHTTP statusRaised whenRetried by default
AuthenticationError401Missing or invalid API keyNo
NotFoundError404Resource does not existNo
ValidationError422Request failed schema validationNo
RateLimitError429Quota or rate limit exceededYes — honors the engine's Retry-After (retry_after / retryAfter, default 60s)
ServerError5xxEngine-side failureYes — exponential backoff
DecisionEngineErroranyBase class for all of the above—

Transient network errors are retried on the same policy as 5xx responses. The Python SDK additionally never retries one rate-limit code, inline_preview_rate_limited.

SettingPythonTypeScriptDefault
Request timeouttimeout (seconds)timeout (milliseconds)120
Retries per requestmax_retriesmaxRetries3

Legacy names

The SDK was renamed to Algenta partway through its history. For backward compatibility, the legacy names below still work — existing code and deployment configurations do not need to change:

  • Python import name — the PyPI package is algenta-sdk, but the importable module remains decision_engine: from decision_engine import AlgentaClient.
  • Client aliases — CodnaClient (and AsyncCodnaClient in Python) remain exported as aliases of AlgentaClient in both SDKs.
  • Environment variables — DE_API_KEY, DE_BASE_URL, and ALGENTA_API_URL are still accepted alongside the canonical ALGENTA_API_KEY and ALGENTA_BASE_URL.

The published API contract guarantees a 90-day deprecation window (DEPRECATION_WINDOW_DAYS) before any legacy name is removed.

Powered by Mojo

The engine's compute kernels — simulation, scoring, and local query execution — are written in Mojo and are proprietary. They are distributed as signed algenta-runtime-native wheels and are not part of this repository.

What is open, here and under Apache-2.0: both SDKs, the published API contract they are generated from, the client/runtime wire protocol they speak, and runnable examples — including examples/mojo-quickstart/, a minimal end-to-end walkthrough of calling the native runtime through the SDK.

[Mojo FFI quickstart: pixi run demo against the signed native runtime]

What is open source?

This repository contains Algenta's Python and TypeScript client SDKs and the official MCP server (packages/mcp/), licensed under Apache-2.0 (see LICENSE and NOTICE).

The Algenta engine itself is closed source and is not contained in this repository. Engine licensing, device entitlements, worker limits, concurrency limits, and Server Compute Units are enforced independently by the engine, subject to the separate Algenta Engine license.

The SDK is a plain HTTP client. It holds no license-signing keys, no entitlement-enforcement logic, and no secret shared with the engine — every entitlement claim is independently verified and enforced by the closed engine, never by this SDK. Fork it, delete every check in it, or replace it with your own HTTP client entirely — modifying or replacing this SDK does not change the execution capacity licensed to an Algenta engine. See SECURITY.md for what that means for vulnerability reports.

Algenta does not require hosted inference or telemetry for execution. Paid licenses expand local execution and governance capacity rather than charging per SDK call.

Verify a release

Every release built by release.yml is tied to:

  • a protected sdk-vX.Y.Z source tag in this repository;
  • the exact commit that tag points to;
  • a release-authorization record, signed by the internal release pipeline after the engine's test suite has validated the commit, binding that commit and a contract-file digest to the version being released (see releases/).

release.yml refuses to build or publish anything unless all of the above independently agree — see scripts/verify_release_authorization.py.

Each GitHub Release cut since signing was added (September 2026) carries, next to the wheel, the sdist and release-manifest.json:

  • a keyless Sigstore signature bundle per asset (<asset>.sigstore.json), signed by the release.yml run itself;
  • SLSA build provenance covering all three assets (multiple.intoto.jsonl), from the SLSA generic generator.

To check an asset against both, with VERSION set to the release version (VERSION=1.0.15 for tag sdk-v1.0.15):

bash
pipx run sigstore verify identity "algenta_sdk-${VERSION}-py3-none-any.whl" \  --bundle "algenta_sdk-${VERSION}-py3-none-any.whl.sigstore.json" \  --cert-oidc-issuer https://token.actions.githubusercontent.com \  --cert-identity "https://github.com/thyn-ai/algenta-sdk/.github/workflows/release.yml@refs/tags/sdk-v${VERSION}"
slsa-verifier verify-artifact "algenta_sdk-${VERSION}-py3-none-any.whl" \  --provenance-path multiple.intoto.jsonl \  --source-uri github.com/thyn-ai/algenta-sdk \  --source-tag "sdk-v${VERSION}"

A release published through release.yml's workflow_dispatch path was signed from the dispatched branch, so its certificate identity ends in @refs/heads/main instead of the tag; the bundle records which.

Versioning

Both packages share one version number, since they wrap one API contract, and follow Semantic Versioning:

  • Patch — bug fixes and documentation; no API surface change.
  • Minor — backward-compatible additions (new methods, new optional fields).
  • Major — breaking changes to exported symbols, required fields, or behavior, announced in advance through the deprecation window above.

Release history lives in CHANGELOG.md.

Contributing

Bug fixes, framework integrations, docs, and tests are welcome — see CONTRIBUTING.md. There is no CLA: contributions are licensed inbound=outbound under Apache-2.0, per GitHub's Terms of Service. Requests for new API capabilities usually require a change on Algenta's private API first; open an issue describing the capability rather than a PR against the generated contract files (also covered in CONTRIBUTING.md).

Please also read CODE_OF_CONDUCT.md.

Contributors

Thanks to everyone who contributes to this project — we follow the all-contributors specification and recognize contributions of every kind, not just code.

Community

Related repositories

Open-source tooling around Algenta, from the Algenta team. The Algenta engine itself is proprietary; everything listed here is Apache-2.0. Issues and discussions are welcome in whichever repository owns the code.

  • thyn-ai/algenta-sdk (this repository) — Python and TypeScript SDKs for Algenta plus the official MCP server (packages/mcp/): governed data queries, simulations, decision memory with execution receipts, agent runs with approvals.
  • thyn-ai/algenta-integrations — Framework integrations for Algenta: LangChain, LlamaIndex, pydantic-ai, MAF, Haystack, LiteLLM, Ray Serve, vLLM, Vercel AI SDK and n8n.
  • thyn-ai/mojo-kernels — Clean-room Mojo kernels as drop-in accelerators for popular Python/TypeScript libraries, with bit-exact parity and pure-language fallbacks.
  • thyn-ai/security-toolchain — The pinned, checksum-verified security toolchain (Gitleaks, Opengrep, OSV-Scanner, Trivy config, actionlint) that every thyn-ai repository runs locally and in CI.
  • thyn-ai/feedback — Public issue intake for the open-source tooling around Algenta and for the Codna GitHub App.
  • thyn-ai/codna-action — GitHub Action for Codna: fix, review or secure a repository in CI through the same packaged local runtime the CLI uses.

Source: README.md at commit cf3059e

Tools

140

onboard_dataset

Register a dataset for semantic querying. Pass column names, inline records, or raw CSV. The engine profiles roles automatically and starts background training. Queries work immediately via a fallback model — accuracy improves once schema-specific training completes (poll status with list_datasets). Registration persists the dataset under the active API key's organization. Use connect_data for live connections instead of inline rows. Returns dataset_id, schema_hash, status, model_tier, column_count, and suggested_aliases.

Parameterscsvnamecolumnsrecordsasync_traindomain_aliases

list_datasets

List registered datasets and their current model tier. Use search plus compact mode for low-token discovery, then poll status or use the primary data tools once you choose a dataset. Read-only and non-destructive; lists only the active API key's organization and is not separately rate-limited. Returns the datasets array with dataset_id, name, status, model_tier, source_names, column_count, and registered_at, plus count, total, page, limit, and pages.

Parameterspagelimitsearchstatuscompactsource_name

get_dataset_status

Get the live training status and model tier of one dataset: whether semantic training is still running or the dataset is ready, and which model serves queries — model_tier 'none' = deterministic fallback only, 'base' = generic model, 'schema' = fully trained schema-specific model (best quality). Poll this after onboard_dataset until training completes, and use retrain_dataset after schema or alias changes. Read-only; an unknown dataset_id fails with not_found. Also returns name, column_count, source_names, and updated_at.

Parametersdataset_idrequired

retrain_dataset

Re-trigger background semantic training for one dataset and return immediately with status and a confirmation message — the build runs asynchronously, so poll get_dataset_status until model_tier reaches 'schema'. Use after schema changes, alias updates, or to force a fresh model build. epochs (default 80, range 5-500) controls training length. An unknown dataset_id fails with not_found; a dataset whose training backend is unavailable fails with semantic_training_unavailable.

Parametersepochsdataset_idrequired

connect_data

High-level data onboarding flow. Use this instead of advanced connector/source tools for normal users. Connect data once, pick the table/file/endpoint, and get a reusable dataset_id. If the result status is needs_selection, call connect_data again with connection_id and the chosen selection. Creating a connection persists it and the dataset under the active API key's organization, and live sources are dialed during this call; no separate per-route rate limit applies. Returns status with dataset_id and connection_id on success, or status needs_selection with the choices array to pick from.

Parameterscsvurlrecordsjson_strproviderconnectorexcel_b64selectionvisibilitydescriptionparquet_b64dataset_namerequired+4 more

list_data

List visible datasets for the current user. Use search plus compact mode first for low-token dataset discovery, then get_data_schema on the chosen dataset_id. Read-only and non-destructive; lists only the active API key's organization and is not separately rate-limited. Returns the datasets array (dataset_id, name, status, source_names, connection_type, row_count, column_count, refreshable) plus count, total, matched_total, page, limit, and pages.

Parameterspagelimitsearchstatuscompactsource_name

get_data_summary

Get the low-token dataset selection summary for a saved dataset_id. Use this after list_data(search=..., compact=true) before paying for the full schema payload. Read-only and non-destructive; reads only the active API key's organization and is not separately rate-limited. Returns dataset_id, name, status, source_names, row_count, column_count, registered_at, and query_hints.

Parametersdataset_idrequired

get_data_schema

Get a saved dataset plus its schema and relationship metadata by dataset_id. Read-only and non-destructive; reads only the active API key's organization and is not separately rate-limited. Use get_data_summary first for a low-token look. Returns the dataset record and its schema: row_count, columns, roles_summary, formulas, and query_hints.

Parametersdataset_idrequired

refresh_data

Re-pull a saved dataset from its original database, API, or object-store origin using the stored connection and selection, and return the same envelope as connect_data (status, schema_summary, refreshable). Only datasets created from a live connection can refresh — an inline upload fails with not_refreshable (check the refreshable flag in list_data first), and an unknown dataset_id fails with not_found.

Parametersdataset_idrequired

disconnect_data

Delete a saved dataset and disconnect it from future use. When no other dataset in the workspace still uses the backing saved connection, that connection is deleted too and connection_deleted is true in the response. Requires manage permission on the dataset (access_scope_denied otherwise). Use list_data to confirm the dataset first — deletion is immediate. Deleting is idempotent: repeating the call on an already-deleted or never-existing dataset_id returns success with already_absent: true instead of not_found. Returns dataset_id, status 'deleted', and connection_deleted.

Parametersdataset_idrequired

register_source

Advanced tool. Register a data source and get full schema profiling + join detection. Profiles every column (type, cardinality, fill rate, distribution). Detects formula relationships (A×B≈C) within the source. Detects join keys to every already-registered source automatically. After registration the source is queryable by name via query_data. Safe to call multiple times — re-registration is a no-op if data is unchanged. Registration persists the source profile under the active API key's organization. Returns source_id and the profiled schema with columns, roles, formulas, and detected join keys.

Parameterssourcerequireddescription

list_sources

Advanced tool. List all registered data sources for this org with their schema summaries. Use this to discover available tables before calling query_data or register_source. Read-only and non-destructive; not separately rate-limited. Returns the sources array with each source's id, name, and schema summary (columns, roles, detected join keys), plus count, total, page, limit, and pages.

Parameterspagelimit

get_source_schema

Advanced tool. Get the full schema for a specific registered source: column types, cardinality, fill rates, formula relationships, and detected join keys to other sources. Read-only and non-destructive; not separately rate-limited. Use list_sources to find source ids. Returns source_id and the full schema: column types, cardinality, fill rates, formula relationships, and detected join keys.

Parameterssource_idrequired

list_connectors

List the data connectors saved under the caller's organization — databases, APIs, file-backed, and repository sources — with id, name, connector_type, status (untested, live, error), and visibility; stored credentials are never returned. Paginated with page and limit; status filters the returned page client-side. Use this first to find a connector_id for get_connector, test_connector, browse_connector, or the repository tools, and create_connector to add one. Read-only.

Parameterspagelimitstatus

create_connector

Save one connector configuration (host, credentials, options) for later data onboarding, health checks, and schema browsing. config is encrypted at rest and the new connector starts untested — call test_connector to verify it reaches the source, then browse_connector to discover what it exposes. Returns the saved connector with its connector_id, persisted under the active API key's organization. To try a definition without saving anything, call preview_test_connector instead.

Parametersnamerequiredconfigvisibilitydescriptionconnector_typerequired

get_connector

Fetch one saved connector by connector_id: name, connector_type, status, visibility, timestamps, and the config fingerprint — never the stored credentials. Use list_connectors to find ids. Read-only; an unknown or invisible id fails with not_found.

Parametersconnector_idrequired

update_connector

Partially update one saved connector: only the supplied fields change. Passing a new config replaces the encrypted credentials and resets the connector to untested, so call test_connector again afterwards. Requires manage permission on the connector (access_scope_denied otherwise) and at least one field; an unknown id fails with not_found. Returns the updated connector. Use preview_test_connector to validate a new config before applying it here.

Parametersnameconfigvisibilitydescriptionconnector_idrequired

test_connector

Run a real connectivity test against one saved connector's stored config and persist the outcome as its live or error status with last_tested_at. This opens an actual connection to the source. Use preview_test_connector for an unsaved inline definition, and browse_connector once the connector is live. Returns success, message, latency_ms, status, error_type, and recoverable.

Parametersconnector_idrequired

browse_connector

Discover what one saved connector exposes — files, tables, endpoints, or items — with discovery labels and metadata for choosing what to onboard. The connector must be live: an untested or errored connector fails with not_connected, so run test_connector first. Use preview_browse_connector for an unsaved inline definition. Read-only against the source. Returns connector_type, items, total, message, labels, and discovery.

Parametersconnector_idrequired

preview_test_connector

Run a real connectivity test against an inline connector definition without saving anything — the dry run for create_connector. This opens an actual connection to the source, is rate-limited per organization, and caches successful outcomes briefly. Nothing is persisted. Returns success, message, latency_ms, status, error_type, and recoverable; call create_connector once the definition passes.

Parametersconfigconnector_typerequired

preview_browse_connector

Browse one inline connector definition without saving it to discover files, tables, endpoints, or items. This opens a real connection to the source and is rate-limited per organization; nothing is saved. Use browse_connector for saved connectors. Returns connector_type, items, total, message, labels, and discovery metadata.

Parametersconfigconnector_typerequired

delete_connector

Delete one saved connector by id. Use update_connector to change config without losing the saved definition. Deleting is idempotent: repeating the call on an already-deleted or never-existing id returns success with already_absent: true instead of an error. Returns connector_id with deleted: true.

Parametersconnector_idrequired

get_repository_intelligence_capabilities

List globally supported Repository Intelligence languages and ranked support progress. Read-only and non-destructive. Check language support here before create_repository_snapshot. Returns supported_languages and support_progress (ranked target counts, progress fraction, and label).

Takes no parameters.

create_repository_snapshot

Create or reuse an immutable, content-hashed snapshot of a saved repository connector (a connector of a repository type — find its id with list_connectors). Re-running with identical inputs returns the existing snapshot (status='existing') instead of duplicating it. The snapshot is the input to triage_repository and query_repository_graph; every later stage references it by snapshot_id. Reads the repository and persists snapshot, symbol, and dependency graph artifacts; it never writes to the repository. Returns snapshot_id, resolved_revision, content_hash, file_count, language_counts, and artifact refs.

Parametersrefmax_filesrepository_idrequiredexclude_patternsinclude_patternsmax_file_size_bytes

get_repository_snapshot

Fetch one persisted immutable repository snapshot by repository_id and snapshot_id, including its resolved_revision, content_hash, file_count, language_counts, and graph artifact refs. Use this to re-read a snapshot created earlier with create_repository_snapshot (or through run_repository_pipeline). Read-only; an unknown snapshot or repository id fails with not_found.

Parameterssnapshot_idrequiredrepository_idrequired

triage_repository

Condense one repository snapshot into a bounded workspace evidence bundle for the planner: ranked suspect files and symbols with scored, budget-capped snippets. signals seeds the search — pass issue_text, diagnostics, failing_tests, changed_files, and/or workspace_context. The returned workspace_evidence_bundle_ref is the required input to create_repository_decision_plan; use run_repository_pipeline to chain both stages in one call. Read-only against the repository; persists the bundle artifact. Returns suspect_files, suspect_symbols, evidence_items, and token reduction stats.

Parameterssignalsrequiredsnapshot_idrequiredtoken_budgetrepository_idrequiredmax_snippet_linesmax_evidence_items

create_repository_decision_plan

Create one stored, immutable repository DecisionPlan revision from a triage workspace evidence bundle and return its decision_plan_id plus the validated patch diff inline. snapshot_id is resolved from the bundle when omitted. This is the only LLM-touching stage of the repository chain; model optionally picks the planner model. The decision_plan_id feeds simulate_repository and apply_repository. Persists the plan revision. Use run_repository_pipeline to chain snapshot, triage, plan, and simulate in one call instead.

Parametersmodelsnapshot_idrepository_idrequiredworkspace_evidence_bundle_refrequired

query_repository_graph

Walk the dependency graph of one persisted repository snapshot from optional file_path/symbol_name seeds and return impacted files and symbols with change-risk scores. Seed scope comes from snapshot_id or a triage workspace_evidence_bundle_ref — one of the two is required. direction inbound follows dependents, outbound follows dependencies, both (default) walks both. Use this before simulate_repository or apply_repository to size the blast radius of a change. Read-only against the repository; persists a lookup artifact. Returns seed files/symbols, direct dependencies and dependents, impacted files/symbols, graph nodes and edges, and top_change_risk_files.

Parametersdirectionfile_pathmax_depthmax_nodessnapshot_idsymbol_namerepository_idrequiredworkspace_evidence_bundle_ref

simulate_repository

Score the patch risk of a stored repository DecisionPlan with the deterministic simulation engine and return the gated DecisionEnvelope whose apply gate apply_repository checks. snapshot_id is resolved from the plan when omitted. runs pins the scenario count (100 or more; omit for the complexity-adaptive count) and seed (default 42) makes repeated calls reproducible — no LLM is involved in this stage. Call create_repository_decision_plan first; use simulate_repository_patch instead for a patch that has no stored plan.

Parametersrunsseedsnapshot_idrepository_idrequireddecision_plan_idrequired

run_repository_pipeline

Run the whole repository-intelligence chain — snapshot, triage, plan, simulate — in one call and return the canonical repository envelope with every stage's response, stage timings, and the ids (snapshot_id, plan_id, simulation_id) the apply step needs. Pass snapshot_id to reuse an existing snapshot or snapshot to create one inline; stop_after halts the chain early (triage skips the LLM planner, plan also skips the deterministic simulate). Signals, triage bounds, model, runs, and seed mirror the standalone stage tools. Use the single-stage tools when you need to inspect or adjust between stages.

Parametersrunsseedmodelsignalssnapshotstop_aftersnapshot_idtoken_budgetrepository_idrequiredmax_snippet_linesmax_evidence_items

simulate_repository_patch

Simulate the risk of an in-flight unified diff against one persisted snapshot and return the canonical repository envelope — without creating a stored decision plan. Use this to verify a working-tree patch mid-run; use simulate_repository when a stored DecisionPlan already exists. Deterministic; no LLM is involved. Returns the gated DecisionEnvelope including the apply gate verdict.

Parametersconfidencepatch_diffrequiredsnapshot_idrequiredrepository_idrequired

run_repository_fix

Run the repository pipeline and then apply its result in one call, returning the canonical repository envelope for both stages. pipeline takes run_repository_pipeline's arguments and must complete through simulate (the call fails otherwise); apply takes apply_repository's arguments with mode defaulting to patch_only — the write modes still require the simulation gate to pass and write_permission=true. Use the separate stage tools when you need to review the plan or simulation before anything is written.

Parametersapplypipelinerepository_idrequired

apply_repository

Materialize a simulated repository decision in one of three modes. patch_only just returns the validated patch diff with applied=false and writes nothing. local_branch commits the patch to a new branch (default algenta/<plan-suffix>) in the engine-side checkout and returns commit_sha and local_checkout_path. remote_pr additionally pushes the branch and opens a pull request, returning pull_request_url. Both write modes are hard-gated: the simulation must satisfy policy thresholds (otherwise repository_apply_gate_failed) and write_permission=true must be passed explicitly (otherwise repository_write_permission_required). Use patch_only to review the diff before writing anything, and run_repository_fix to chain the whole flow. Requires decision_plan_id and simulation_id from simulate_repository.

Parametersmoderequiredbase_branchbranch_namesnapshot_idrepository_idrequiredsimulation_idrequiredcommit_messagedecision_plan_idrequiredwrite_permissionpull_request_bodypull_request_title

query_data

Execute a structured query against connected data sources. Convert the user's question to a structured intent and call this tool — do NOT try to write SQL or parse column names yourself. The engine resolves column meaning from mathematical relationships and statistical structure only. It works on any dataset without configuration. The governed filter shape is a record-predicate contract over normalized rows, not a SQL predicate language, so it also applies to Redis and other non-SQL sources. Structural roles (use in metric.role): - derived_measure: the main financial/operational aggregate (revenue, spend, value) - base_measure: counts, quantities, discrete amounts - unit_measure: per-unit prices, rates - ratio: percentages, margins, fill rates (0-1 range) - metric: let the engine pick the best numeric column If clarification_required is true, or if confidence < 0.85, check the candidates list and ask the user to clarify. Never fabricate column names or SQL. Read-only against the engine; executes under the active API key with no separate per-route rate limit. Returns the query envelope: result, result_type, row_count, confidence, resolved_column, decision_path, and plan, with candidates and clarification_required set when the engine cannot resolve deterministically.

Parameterslimitorderfiltermetricsourcesgroup_bydataset_idaggregation

query_batch

Execute several governed exact queries in one API call. Use this for multi-metric prompts after choosing a dataset with list_data and get_data_summary. Each item reuses the same structured query contract as query_data; defaults may provide shared dataset_id, filter, limit, and order. Read-only against the engine; executes under the active API key with no separate per-route rate limit. Returns request_id and a results array with each item's key, data envelope, metadata, or error.

Parametersqueriesrequireddefaults

query_sql_report

Execute a constrained read-only SQL rowset query over authorized datasets. Use this only for wide reports that do not fit the governed exact-query surface. SQL must be a single SELECT/WITH statement over the provided dataset aliases. Returns columns, rows, row_count, truncated, request_id, and latency_ms.

Parameterssqlrequiredsourcesrequiredmax_rows

ingest_data

Auto-map tabular data to a simulation payload. Detects variable distributions, polarity (revenue=positive, cost=negative), units, and builds the objective function automatically. Set run_simulation=true to execute the simulation immediately and get results. Multiple tables: auto-detects join keys and merges before analysis. Returns fields_detected, records_analyzed, join_applied, engine, objective_function, variables, and simulation_payload, plus simulation_result when run_simulation is true.

Parametersrunsdomaintablesrequiredrun_simulation

list_models

List the current Algenta model catalog, including deterministic utility models and any provider-backed routed entries with their routing, failover, timeout, and auth metadata, including capability-specific chat and embedding auth/header readiness. Use this before calling tokenize, count_tokens, chat_completions, responses, embeddings, embedding_similarity, or rerank. Read-only and non-destructive; calls share the plan's per-minute rate limit with the other LLM utility routes. Returns the catalog entries with model id, capabilities, and, for provider-backed entries, routing, failover, timeout, and auth-header readiness metadata.

Takes no parameters.

resolve_artifact_bridge

Resolve a Hugging Face artifact path through the Algenta compatibility-ring artifact bridge. Defaults to cache-only lookup and never downloads unless local_files_only=false. Use this only for Hugging Face artifact paths; use list_models for the model catalog. Returns the resolution record: status, backend, artifact_backend, resolved_path, cache_root, revision, auth_env_var_used, and auth_configured.

Parametersrepo_idrequiredfilenamerequiredrevisionlocal_files_only

tokenize

Tokenize UTF-8 text into individual tokens with a supported deterministic Algenta tokenizer model (default text.tokenizer; call list_models for every supported model id). Use this when you need the token strings themselves; call count_tokens when you only need the number. Read-only and deterministic: the same input and model always return the same tokens, and nothing is stored. Returns the resolved model id, its tokenizer_kind, the tokens array, and token_count. An unsupported model id fails with model_not_supported.

Parametersinputrequiredmodel

count_tokens

Count how many tokens a supported deterministic Algenta tokenizer model produces for UTF-8 text (default text.tokenizer; call list_models for every supported model id). Use this for prompt-size checks and token budgeting; call tokenize when you also need the token strings. Read-only and deterministic: the same input and model always return the same count, and nothing is stored. Returns the resolved model id, its tokenizer_kind, and token_count. An unsupported model id fails with model_not_supported.

Parametersinputrequiredmodel

chat_completions

Run one ordered chat transcript through an Algenta model and return the assistant message plus token usage. The default text.tokenizer model is a deterministic tokenizer-backed utility route whose assistant message is a JSON tokenization summary of the user messages — not a generative LLM; provider-backed chat models advertised by list_models are routed through the configured provider service. Use responses for independent single-string utility calls. This tool does not stream and does not expose function/tool calling, and nothing is persisted. An unsupported model id fails with model_not_supported.

Parametersmodelmessagesrequired

responses

Run the unified Algenta utility response surface: deterministic tokenization/embeddings, or (for provider-backed chat models) a chat response with optional function/tool calling. `input` accepts a plain string, a list of independent strings (each processed as its own single-turn request), or a typed OpenResponses-style input array (items shaped {type: message|function_call|function_call_output, ...}) processed as ONE multi-turn conversation. `previous_response_id` continues a prior typed-array conversation -- state is held in the Algenta server process's memory only, so it does not survive a process restart or a different worker/replica.

Parametersinputrequiredmodeltoolsdimensionstool_choiceparallel_tool_callsprevious_response_id

embeddings

Generate one embedding vector per input string (a single string or a list of strings). The default text.hash_embedding_v1 model produces deterministic lexical hash embeddings — identical input always yields the identical vector; provider-backed embedding models advertised by list_models are routed through the configured provider service. Use embedding_similarity to score two vectors or rerank to order documents against a query vector. Read-only; nothing is stored. Returns one {index, embedding, token_count} item per input plus total token usage. An unsupported model id fails with model_not_supported.

Parametersinputrequiredmodeldimensions

embedding_similarity

Score the similarity between two caller-supplied embedding vectors with a supported deterministic metric (default embeddings.cosine_similarity). This tool does not generate embeddings from text — call embeddings first to produce the vectors. left and right must have equal length or the call fails with invalid_embedding_dimensions. Read-only and deterministic. Returns the resolved model id, similarity_metric, the score, and the shared vector dimension.

Parametersleftrequiredmodelrightrequired

rerank

Rank caller-supplied document embeddings against a query embedding with a supported deterministic similarity metric (default embeddings.cosine_similarity), most relevant first. This tool does not embed text — call embeddings first to produce the query and document vectors. Every document embedding must share the query's dimension or the call fails with invalid_embedding_dimensions. Read-only and deterministic. Returns ranked items with rank (starting at 1) and score, plus total_documents and returned_documents counts.

Parametersmodeltop_ndocumentsrequiredquery_embeddingrequired

list_runtime_libraries

List executable local-runtime Mojo libraries. Use this when you need the runtime-backed compute catalog rather than the governed data/query tools. This surface is local/runtime-backed only.

Parameterslimitsearch

execute_runtime_library

Execute one local-runtime Mojo library function by module and function name. Pass args as either a JSON object, array, scalar, or null. This surface is local/runtime-backed only and does not route through hosted data/query APIs.

Parametersargsmodulerequiredfunctionrequiredrequest_id

list_capability_providers

List the unified capability providers available to the organization — data sources, MCP servers, skill packs, native tools, and runtime libraries — with their profiles, auth kinds, supported execution owners, and binding scopes. Start here to find provider_id and profile_id for create_capability_binding, then discover_capability_binding to see what a binding exposes. Read-only. Returns the provider records with provider_id, provider_type, auth metadata, supported execution owners, and profiles.

Takes no parameters.

list_capability_bindings

List the capability bindings saved under the caller's organization, optionally narrowed by provider_id or scope (user, workspace, organization). A binding pairs a provider profile with credentials/config and is what makes capabilities executable. Use create_capability_binding to add one, test_capability_binding to verify one, and list_capabilities to browse what they expose. Read-only. Returns the binding records with binding_id, provider_id, profile_id, scope, execution_owner, and status.

Parametersscopeprovider_id

create_capability_binding

Save one capability binding for a provider/profile pair and return it with its binding_id. scope (default workspace) decides who can use it, execution_owner decides where executions run (algenta_managed on the engine, client_managed in the customer app or adapter path), and config carries the profile's credentials and options. Find valid provider_id/profile_id pairs with list_capability_providers, then call discover_capability_binding to publish the binding's capabilities and test_capability_binding to verify. Persists the binding.

Parametersscopeconfigscope_refprofile_idrequiredprovider_idrequiredbinding_namerequiredexecution_ownercustomer_metadata

test_capability_binding

Run a health test on one capability binding and return the outcome. Pass binding_id to test a saved binding, or a full inline definition (provider_id, profile_id, config, ...) to preview-test one that was never saved — nothing is persisted in the preview form. Use this after create_capability_binding or update, before routing traffic to the binding.

Parametersscopeconfigscope_refbinding_idprofile_idprovider_idexecution_ownercustomer_metadata

discover_capability_binding

Discover the capabilities one binding exposes and return them as catalog entries. Pass binding_id to discover a saved binding (this publishes or refreshes its capabilities in the catalog), or a full inline definition to preview-discover one that was never saved. Call this after create_capability_binding, then browse the result with list_capabilities.

Parametersscopeconfigscope_refbinding_idprofile_idprovider_idexecution_ownercustomer_metadata

list_capabilities

List the unified capability catalog visible to the caller — datasets, MCP tools, resources and prompts, skills, native tools, and runtime libraries — with each entry's kind, provider, binding, and execution owner. Filter by kinds, provider_ids, or binding_ids to narrow the catalog. Use get_capability for one entry's detail, route_capabilities to pick the best entry for an objective, and list_skills for the skill subset. Read-only. Returns the catalog entries with capability_id, kind, provider_id, binding_id, execution_owner, and tags.

Parameterskindsbinding_idsprovider_ids

get_capability

Fetch one unified capability catalog entry by capability_id: kind, provider, binding, execution owner, approval requirement, and tags. include_instruction=true also returns the skill instruction text. Find capability ids with list_capabilities or route_capabilities. Read-only; an unknown id fails with not_found.

Parameterscapability_idrequiredinclude_instruction

route_capabilities

Pick the best unified capability for a natural-language objective and return the route plan: the selected capability, binding, and kind, the authoritative execution_owner, whether approval is required, confidence and reason, plus ordered fallbacks (max_fallbacks, default 3). The optional filters narrow which catalog entries may be selected. Routing never executes anything — feed the selected_capability_id to execute_capability. Read-only.

Parameterstagskindsobjectiverequiredbinding_idsprovider_idsmax_fallbacksexecution_ownersartifact_affinities

execute_capability

Execute one routed or known algenta_managed capability by capability id and return the execution receipt. client_managed routes must execute in the customer app or adapter path — this tool will not run them. If the capability requires approval (approval_required), this returns a pending plan (status='approval_required', plus plan_id/plan_hash/nonce) instead of executing — approval and the final plan_id execution are separate, credentialed HTTP operations and are NOT available as tools. Route first with route_capabilities when the right capability is not known.

Parametersinputbinding_idrequest_idcapability_idrequired

list_skills

List the skill capabilities in the unified capability plane — prompt skills enabled for the caller's organization with their names, bindings, and execution owners. This is list_capabilities narrowed to kind=skill. Use enable_skill to add one and disable_skill to remove one. Read-only. Returns the skill catalog entries with capability_id, name, binding, and execution owner.

Takes no parameters.

enable_skill

Enable one prompt skill as a first-class capability binding and return its discovered catalog entry. The skill's instruction text becomes an instruction_only capability under the caller's user scope, selectable by route_capabilities. Persists a new binding; remove it with disable_skill. Use list_skills to see what is already enabled.

Parameterstagsskill_namerequireddescriptioninstructionrequiredexecution_ownerartifact_affinities

disable_skill

Disable one skill by deleting its capability binding (find binding ids with list_skills or list_capability_bindings). The skill immediately stops appearing in the capability catalog and can no longer be routed or executed; the deletion is permanent. Disabling is idempotent: repeating the call on an already-disabled or never-existing binding returns success with already_absent: true instead of an error. Returns binding_id with disabled: true. Use this only for permanent removal — re-enabling later requires a fresh enable_skill call.

Parametersbinding_idrequired

plan_decision

Run a validated simulation-style request (the same payload contract as simulate) but return only the structured DecisionPlan summary — the compact plan object with recommended action and calibrated confidence, without the full DecisionEnvelope metrics. Use this when the caller needs the plan summary for a dashboard or a follow-up plan_decision-to-log_decision flow; use simulate for the full envelope. Synchronous deterministic compute governed by the plan's per-minute rate limit and monthly quota; nothing is persisted.

Takes no parameters.

product_decision

Recommend an action for a business decision from plain inputs, and return the risk summary behind it. Each input becomes a simulation variable: fixed at value, or triangular when low and high bounds are given; inputs named cost/costs/expense/expenses/spending are subtracted in the objective. The engine evaluates scenarios (default 10000) and maps the loss probability to an action: over 50% -> reject, over the risk_tolerance threshold (low 5%, medium 15%, high 30%) -> pause, otherwise proceed. Use simulate for the raw distribution and plan_decision for the structured plan. Synchronous deterministic compute; nothing is persisted. Returns decision_id, action, confidence, reasoning and why bullets, expected_outcome, downside_risk (p5), upside_potential (p95), and probability_of_loss.

Parameterslabelengineinputsrequiredobjectivescenariosrisk_tolerance

product_agent_run

Execute a natural-language task synchronously with the simple product agent and return a compact task result. The agent picks one tool from the task wording (optimize for best/maximum-style tasks, simulate for risk/forecast-style, search for find/lookup-style, otherwise calculate), runs it, and formats the answer as text, json, or markdown. Use this for one-shot task execution; use create_agent_run when you need a paused or approval-gated lifecycle, and get_agent_run to re-fetch the persisted record. The run, its step log, events, and a replayable checkpoint are persisted under the caller's organization. Returns run_id, status (completed on success), result, the step list, tools_used, and latency_ms.

Parameterstaskrequiredtoolscontextmax_stepsoutput_format

product_optimize

Estimate the best value for each decision variable given a plain-English objective, and return the per-variable optima. Every variable is sampled uniformly over its [min, max] range; an objective containing 'maximize' favors each variable's max, anything else favors the min, and the returned optimum blends that endpoint with the range midpoint. Use product_decision when you want a proceed/pause/reject recommendation instead of raw optima. Synchronous deterministic compute; nothing is persisted. Returns optimal_values, objective_value, improvement_vs_midpoint (percent), constraints_satisfied, and iterations_run.

Parametersengineobjectiverequiredvariablesrequirediterationsconstraints

product_retrieve

Rank caller-supplied documents against a search query and return the top matches with snippets. Scoring is deterministic lexical word-overlap between query and document plus a bonus when the query prefix appears in the document; results sort by relevance_score with rank starting at 1. Provide documents or a collection_id - a call with neither fails with missing_source. Use query_data for analytics over connected datasets instead. Read-only; nothing is stored. Returns results (rank, document_id, content excerpt, relevance_score, snippet) and total_searched.

Parametersqueryrequiredtop_krerankdocumentscollection_id

product_forecast

Forecast a business metric horizon periods ahead from its historical series and return per-period point forecasts with confidence intervals. The trend comes from the last up-to-6 history values, volatility from the mean absolute period change, and a 5000-scenario simulation quantifies uncertainty; seasonality=true applies an alternating +/-5% seasonal factor. Use query_data to build the history from a connected dataset first. Synchronous deterministic compute; nothing is persisted. Returns baseline (most recent value), forecast_mean (final period), total_change_pct, and one {period, forecast, lower_bound, upper_bound, trend} item per period with trend up, down, or stable.

Parametersmetricrequiredhistoryrequiredhorizonseasonalityconfidence_level

simulate

Run a Monte Carlo simulation and get a structured decision recommendation. Use for: quantifying risk in a decision, comparing expected outcomes, getting probability-weighted recommendations. Synchronous deterministic compute governed by the plan's per-minute rate limit and monthly quota (429 on excess); the run is recorded asynchronously and appears in list_runs. Returns the decision envelope: recommended_action, expected_value, probability_of_loss, confidence, percentiles, and run metadata (run_id, execution_ms, scenarios_run).

Parametersmodeobjectivevariablesrequiredn_simulationsobjective_function

recommend

Compare multiple named actions/options and get a ranked recommendation. Use when you need to choose between two or more alternatives with uncertainty. Synchronous deterministic compute; nothing is persisted and no separate rate limit applies. Returns recommended_action, confidence, rationale, and the ranked action list with expected_value and score per action.

Parametersactionsrequiredn_simulations

score

Run one simulation request (the same payload shape as simulate) and return the decision envelope fields plus a composite score with its breakdown. The score blends the normalized expected value and one minus the probability of loss; scoring_weights tunes the blend (expected_value default 0.6, downside_risk default 0.4). Use simulate when you need the full envelope without scoring, and compare to rank several scenarios. Synchronous deterministic compute; nothing is persisted. Returns recommended_action, expected_value, probability_of_loss, score, and score_breakdown.

Parametersrequestrequiredscoring_weights

batch

Run multiple simulation requests in one call and return per-item success or failure details. Synchronous deterministic compute; nothing is persisted and no separate rate limit applies. Use simulate for a single request and submit_job for very large async runs. Returns total, succeeded, failed, and a per-item results array with index, success, the envelope's recommended_action and expected_value, or the item error.

Parametersitemsrequired

compare

Run 2-10 named scenarios side by side and return the winner plus each scenario's deltas versus the best one. The winner is the scenario with the highest expected value; every entry reports its recommended_action, expected_value, probability_of_loss, and delta_vs_best. Each scenario's request uses the simulate payload shape; runs and seed are forwarded for reproducibility. Use recommend for a ranked recommendation over actions instead. Synchronous deterministic compute; nothing is persisted.

Parametersrunsseedscenariosrequired

submit_job

Submit a long-running async simulation job. Use for n_simulations > 500,000 or when you need a callback. Returns a job_id — poll with get_job_status. Submitting persists the job under the active API key's organization; when callback_url is set, completion is delivered to it by outbound webhook.

Parametersobjectivevariablesrequiredcallback_urln_simulations

list_jobs

List the organization's async simulation jobs, newest first, with pagination (defaults page 1, limit 25, max 200) and an optional status filter such as queued, running, completed, failed, or cancelled. Each entry carries the job id, status, progress, and poll URL. Use get_job_status or poll_job to follow one job and get_job_result for its output. Read-only. Returns jobs plus total, page, limit, and pages.

Parameterspagelimitstatus

get_job_status

Fetch the latest async simulation job status by id. Read-only and non-destructive; not separately rate-limited. Use poll_job to block until a terminal state. Returns the job record with status, progress, timestamps, and poll_url.

Parametersjob_idrequired

poll_job

Wait for an async simulation job to reach a terminal state. Returns the final result when the job completes, or the terminal status when it fails, is cancelled, or times out. Read-only: it polls the job's status endpoints and changes nothing. Use get_job_status for a single non-blocking check.

Parametersjob_idrequiredtimeout_secondspoll_interval_seconds

get_job_result

Fetch the completed result payload for an async simulation job by id. Read-only and non-destructive; not separately rate-limited. Use get_job_status to check progress before the job completes. Returns the completed job's result payload.

Parametersjob_idrequired

cancel_job

Cancel a queued or running async simulation job by id. Use this for queued or running jobs; list_jobs shows their states. Cancelling is idempotent: repeating the call on an already-cancelled or never-existing id returns success with already_absent: true instead of an error; a completed or failed job is still refused with job_already_terminal. Returns the updated job record with its terminal status.

Parametersjob_idrequired

test_webhook_delivery

Send one real test webhook payload (event webhook.test with a sample message) to a callback URL and return the delivery result. This makes an actual outbound HTTP POST from the Algenta API to the given URL, with no retries. Use it to verify a receiver before wiring callback_url into submit_job or register_trigger. Returns success, the receiver's HTTP status_code, and a message.

Parameterscallback_urlrequired

create_agent_run

Create a persisted agent run lifecycle resource for a natural-language task. With approval_mode=auto (default) the run picks a tool from the task wording, executes synchronously, and returns completed; approval_mode=manual parks it at requires_approval until approve_agent_run, and start_paused=true parks it at paused until resume_agent_run. The run, its step log, append-only events, and a replayable checkpoint are persisted under the caller's organization and the creation is audit-logged. Use product_agent_run for the simpler synchronous helper, list_agent_runs to browse, and get_agent_run_events to follow the trail. Returns the full run resource with run_id and status.

Parameterstaskrequiredtoolscontextmax_stepsstart_pausedapproval_modeoutput_format

list_agent_runs

List the organization's persisted agent runs, paginated (defaults page 1, limit 25), with lineage-aware filters: status, request_hash (find reruns of the same request), policy_snapshot_id, and schema_snapshot_id (find runs under one policy or schema revision). Use get_agent_run for one run's full detail and query_agent_run_checkpoints to search checkpoints across runs. Read-only. Returns data, total, page, limit, and pages.

Parameterspagelimitstatusrequest_hashpolicy_snapshot_idschema_snapshot_id

get_agent_run

Fetch one persisted agent run by run_id: status, task, selected_tool, steps, result, tools_used, and the policy/schema snapshot ids it ran under. Use list_agent_runs to find run ids, get_agent_run_events for its event trail, and get_agent_run_checkpoints for replay checkpoints. Read-only; an unknown run_id fails with agent_run_not_found.

Parametersrun_idrequired

get_agent_run_events

Fetch the append-only event stream of one agent run — run_created, tool_selected, tool_executed, run_completed, and the pause/approve/cancel transitions — in order. Use get_agent_run_mission_events for the canonical mission-event projection of the same trail. Read-only; an unknown run_id fails with agent_run_not_found. Returns data plus total_events.

Parameterslimitrun_idrequired

get_agent_run_checkpoints

List the persisted checkpoints of one agent run — the deterministic snapshots written at creation and every lifecycle transition that make the run replayable. Use query_agent_run_checkpoints to search checkpoints across runs. Read-only; an unknown run_id fails with agent_run_not_found. Returns the run's checkpoint records.

Parametersrun_idrequired

query_agent_run_checkpoints

Search persisted checkpoints across all of the organization's agent runs, paginated (defaults page 1, limit 25). Filter by run_id or checkpoint_id to pinpoint one, or by status, request_hash, policy_snapshot_id, or schema_snapshot_id to audit lineage. Use get_agent_run_checkpoints when you already know the run_id and want its full checkpoint list. Read-only. Returns data, total, page, limit, and pages.

Parameterspagelimitrun_idstatusrequest_hashcheckpoint_idpolicy_snapshot_idschema_snapshot_id

get_agent_run_mission_events

Fetch the canonical mission-event records of one agent run — the typed, indexed projection of its lifecycle used for audit and replay. Use get_agent_run_events for the raw append-only stream and query_agent_run_mission_events to search mission events across runs. Read-only; an unknown run_id fails with agent_run_not_found. Returns the run's canonical mission-event records.

Parameterslimitrun_idrequired

query_agent_run_mission_events

Search canonical mission-event records across all of the organization's agent runs, paginated (defaults page 1, limit 25) and newest first. Filter by run_id or event_type to pinpoint, or by status, request_hash, policy_snapshot_id, or schema_snapshot_id for lineage audits. Use get_agent_run_mission_events when you already know the run_id. Read-only. Returns data, total, page, limit, and pages.

Parameterspagelimitrun_idstatusevent_typerequest_hashpolicy_snapshot_idschema_snapshot_id

get_agent_run_telemetry

Fetch the runtime telemetry batches recorded for one agent run — the module-level timing and execution detail captured while it ran. Use query_agent_run_telemetry to search telemetry across runs by kind or module. Read-only; an unknown run_id fails with agent_run_not_found. Returns the run's telemetry batches.

Parameterslimitrun_idrequired

query_agent_run_telemetry

Search runtime telemetry batches across all of the organization's agent runs, paginated (defaults page 1, limit 25). Filter by run_id, telemetry_kind, or module_name to pinpoint, or by status, request_hash, policy_snapshot_id, or schema_snapshot_id for lineage audits. Use get_agent_run_telemetry when you already know the run_id. Read-only. Returns data, total, page, limit, and pages.

Parameterspagelimitrun_idstatusmodule_namerequest_hashtelemetry_kindpolicy_snapshot_idschema_snapshot_id

resume_agent_run

Resume a paused agent run by run_id. A run created with approval_mode=auto executes to completion synchronously and returns completed; a manual-mode run moves to requires_approval and still needs approve_agent_run. Resuming anything that is not paused fails with agent_run_invalid_state; an unknown run_id fails with agent_run_not_found. The transition is audit-logged and checkpointed. Returns the updated run resource.

Parametersrun_idrequired

cancel_agent_run

Cancel an agent run by run_id, ending its lifecycle at cancelled. Only a paused or requires_approval run can be cancelled — anything else fails with agent_run_invalid_state. Cancelling is idempotent: repeating the call on an already-cancelled or never-existing run_id returns success with already_absent: true instead of agent_run_not_found. Use resume_agent_run or approve_agent_run to continue a waiting run instead. The first cancellation is audit-logged and checkpointed; the run record is kept, not deleted, and repeats record nothing further. Returns the updated run resource.

Parametersrun_idrequired

approve_agent_run

Approve an agent run that is waiting on manual approval (status requires_approval) and execute it synchronously to completion. Runs in any other state fail with agent_run_invalid_state; an unknown run_id fails with agent_run_not_found. The approval is the human-in-the-loop gate for manual-mode runs and is audit-logged and checkpointed. Returns the updated run resource. Use resume_agent_run for paused runs instead.

Parametersrun_idrequired

list_deployment_regions

List available deployment providers and regions for the current organization. Read-only and non-destructive; not separately rate-limited. Call this before create_deployment to pick a valid provider/region pair. Returns the providers array with each provider's id, name, description, and regions (use a region id when creating).

Takes no parameters.

get_deployment

Fetch the current deployment for the active organization, if one exists. Read-only and non-destructive; not separately rate-limited. Poll this after create_deployment until status is active. Returns the deployment record (deployment_id, provider, region, status, config, created_at) or null when the organization is on the shared pool.

Takes no parameters.

create_deployment

Request a new isolated engine deployment for the active organization on the chosen provider and region. Returns immediately with status requested — provisioning is asynchronous, so poll get_deployment until status is active; API calls then route to the isolated deployment automatically. Requires an owner API key. Only one active or in-progress deployment is allowed per org (deployment_exists otherwise — call delete_deployment first), and unknown provider/region pairs fail validation; list_deployment_regions shows the valid combinations.

Parametersconfigregionproviderbilling_markup_pct

get_deployment_cost

Get the current-month cost details of one deployment by id: provider, region, cost_usd_month, billable_cost_usd_month after markup, the applied billing_markup_pct, and last_updated. Requires an admin API key; an unknown deployment_id fails with not_found. Use get_deployment to find the active deployment first. Read-only.

Parametersdeployment_idrequired

delete_deployment

Request deprovisioning for one deployment by id. Deprovision with this before create_deployment when a deployment already exists. Deleting is idempotent: repeating the call on an already-deprovisioned or never-existing id returns success with already_absent: true instead of an error. Returns status 'deprovisioning' with the deployment_id; deprovisioning is asynchronous.

Parametersdeployment_idrequired

list_team_members

List the active users of the caller's organization with user_id, name, email, role, and status. Called with no arguments it returns the full member array; passing page or limit switches to a paginated envelope {members, total, page, limit, pages} (defaults page 1, limit 25). Use the returned user_id with update_team_member_role or remove_team_member. Read-only.

Parameterspagelimit

invite_team_member

Invite someone to the caller's organization by email and return the pending invite. This creates a pending invitation, emails an accept link, and reserves a seat until the invite is accepted. The caller's API key must have an admin role and the plan must have seats available — single-seat plans fail with seats_not_available. Use list_team_members to see who is already in the org. Role defaults to member.

Parametersroleemailrequired

update_team_member_role

Change one organization member's role by user_id (find ids with list_team_members). Requires an admin API key. Guardrails: you cannot change your own role (self_role_change_forbidden), only an owner can grant the owner role (owner_grant_forbidden), and demoting the last active owner is refused (last_owner). An unknown user_id fails with not_found. Returns the updated user_id and a confirmation message. Use remove_team_member to take the member out of the organization instead.

Parametersrolerequireduser_idrequired

remove_team_member

Remove one member from the caller's organization by user_id (find ids with list_team_members). Requires an admin API key. The member is suspended immediately — their API keys stop authenticating at once — and removing the last active owner is refused (last_owner). Removing is idempotent: repeating the call on an already-removed or never-existing user_id returns success with already_absent: true instead of not_found. Returns removed: true with the removed user_id. Use update_team_member_role to change access without removing the member.

Parametersuser_idrequired

list_devices

List the devices registered to the caller's organization, paginated, together with the plan's device_limit and plan name. Requires an API-key identity (user-session keys fail with api_key_identity_required). Use a device's registration_id with revoke_device to free a slot. Read-only. Returns devices, device_count, total, page, pages, device_limit, and plan.

Parameterspagelimit

revoke_device

Revoke one registered device by registration_id (find ids with list_devices), freeing one device slot. The device loses access on its next license refresh. This is a credential revocation, not an idempotent delete: an unknown registration_id — including an already-revoked one — fails with not_found (no silent no-op, so a mistyped id can never masquerade as a successful revocation). Returns revoked: true with the registration_id.

Parametersregistration_idrequired

get_audit_logs

Query the organization's audit-event log, newest first, with pagination (defaults page 1, limit 25) and exact-match filters. Every entry records who did what to which resource with which result; an org with no events returns an honest empty page. Requires an admin API key. Use get_audit_log_artifacts for the immutable Parquet artifact copy, and filter by policy_snapshot_id, schema_snapshot_id, manifest_version, or request_hash to trace one execution. Read-only. Returns entries plus total, page, limit, and pages.

Parameterspagelimitactionresultactor_emailrequest_hashresource_typemanifest_versionpolicy_snapshot_idschema_snapshot_id

get_audit_log_artifacts

Query the organization's immutable Parquet audit-log artifacts with pagination (defaults page 1, limit 25) and exact-match filters, including content_hash for pinpointing one artifact. Artifacts are the tamper-evident copy of the audit trail; use get_audit_logs for the live audit-event table. Requires an admin API key; a workspace-scoped key sees only its own workspace's artifacts. Read-only. Returns entries plus total, page, limit, and pages.

Parameterspagelimitactionresultactor_emailcontent_hashrequest_hashresource_typemanifest_versionpolicy_snapshot_idschema_snapshot_id

get_execution_policy

Get the current autonomous execution policy for the active organization. Read-only and non-destructive; not separately rate-limited. Read this before update_execution_policy. Returns min_confidence, risk_floor, require_calibration, allow_reexecution, and the current snapshot metadata.

Takes no parameters.

list_execution_policy_snapshots

List the organization's persisted execution-policy snapshots in revision order with total_snapshots. Every policy update writes a new snapshot, so these ids are the lineage trail for replay and audit inspection; get_execution_policy returns only the current one. Read-only.

Takes no parameters.

get_billing_info

Get current billing plan and subscription info for the active organization. Read-only and non-destructive; not separately rate-limited. Use create_billing_checkout or create_billing_portal to change anything. Returns plan, stripe_customer_id, subscription_status, and current_period_end.

Takes no parameters.

create_billing_checkout

Create a Stripe Checkout session for the active organization and return its hosted checkout URL. The user completes the purchase in the browser; nothing is charged by this call itself. Requires an owner API key. plan defaults to developer; an unsupported plan fails with invalid_plan. Use get_billing_info to check the current plan and create_billing_portal to manage an existing subscription.

Parametersplan

create_billing_portal

Create a Stripe Billing Portal session for the active organization and return its URL, where the user manages payment methods, invoices, and the subscription. Requires an owner API key and an existing billing account — an org that has never checked out fails with no_billing_account (call create_billing_checkout first). This call itself changes nothing.

Takes no parameters.

refresh_credits

Issue a compatibility credit batch to a quota-governed managed runtime. This exists for non-Algenta managed plans; Algenta editions are unmetered and do not need execution credits. Requires an API-key identity (api_key_identity_required otherwise) and a registered device_id. credits_used reports consumption since the last refresh and defaults to 0. Returns credits_granted, credits_issued_this_month, monthly_limit (0 means unlimited), monthly_remaining, expires_at, refresh_after, and server_time.

Parametersdevice_idrequiredcredits_usedbilling_periodrequired

ingest_metering_events

Ingest one batch of execution-analytics events from a managed runtime that explicitly enabled control-plane sync. This endpoint is analytics-only: received events are counted for dashboards and structured-logged, never used for billing or quota enforcement, and self-hosted Algenta profiles never call it automatically. Every event field is optional; events without a timestamp count toward the current billing month. An empty events list fails with empty_events. Returns accepted (event count) and the primary billing_period.

Parameterseventsrequireddevice_idrequired

update_execution_policy

Partially update the organization's autonomous execution policy: only the fields supplied change, the rest keep their values. min_confidence blocks decisions below that confidence, risk_floor blocks decisions whose worst-case (p5) loss exceeds it, require_calibration makes auto-execution wait for enough recorded outcomes, and allow_reexecution is the idempotency gate. Changes take effect immediately, are recorded in the audit log, and write a new policy snapshot (see list_execution_policy_snapshots). Read the current values first with get_execution_policy. Returns the full updated policy.

Parametersrisk_floormin_confidenceallow_reexecutionrequire_calibration

get_contract

Get the machine-readable Algenta public contract. Use this when an agent needs the canonical discovery, summary, query, batch, SQL report, governed filter rules, CLI, or MCP entrypoints before planning tool use. Read-only and non-destructive; not separately rate-limited.

Takes no parameters.

get_runtime_manifest

Get the signed Algenta runtime manifest. Use this when an agent needs the canonical runtime-core inventory, maturity states, proof matrix, typed failure contract, or release theorem before using runtime-backed execution paths. Read-only and non-destructive; not separately rate-limited.

Takes no parameters.

get_runtime_release_validation

Get the authenticated Algenta runtime release validation result. Use this when an agent needs the current manifest-listed release verdict, formal theorem conditions, or fail-closed proof status before using runtime-backed paths. Read-only and non-destructive; not separately rate-limited.

Takes no parameters.

get_runtime_modules

Get the authenticated Algenta runtime module proof catalog. Use this when an agent needs the shipping module inventory, proof-matrix entries, maturity counts, or compiled module evidence before using runtime-backed paths. Read-only and non-destructive; not separately rate-limited.

Takes no parameters.

get_runtime_benchmarks

Get the authenticated Algenta runtime benchmark catalog. Use this when an agent needs benchmark classes, benchmark evidence paths, evaluation quality gates, SLO budgets, compiled artifacts, or module benchmark linkage before reasoning about runtime performance claims. Read-only and non-destructive; not separately rate-limited.

Takes no parameters.

get_me

Get current user and organization identity for the active API key. Read-only and non-destructive; not separately rate-limited. Use update_me to change the returned names. Returns user_id, name, email, role, and the organization id, name, and plan.

Takes no parameters.

update_me

Update the current user's name and/or the organization name for the active API key; only the supplied fields change. Renaming the organization requires an admin or owner key (access_scope_denied otherwise), and the key must be linked to a user (user_not_found for service keys). At least one of name or org_name is required. Returns the updated identity; read it first with get_me.

Parametersnameorg_name

get_limits

Get current plan quotas and limits for the active API key. Read-only and non-destructive; not separately rate-limited. Use get_usage for current consumption against these limits. Returns the plan's quota ceilings, including rate, concurrency, storage, and LLM spend cap.

Takes no parameters.

list_distributions

List the probability distribution types supported in simulation variables — normal, uniform, triangular, lognormal, and fixed — each with its required parameters and a ready-to-use example. Read this before writing variable definitions for simulate, score, compare, or submit_job. Read-only.

Takes no parameters.

list_templates

List the built-in simulation templates available to the active API key, each with its id and intended use. A template id pre-fills a simulation request, so start here instead of hand-writing variables for common cases such as a product launch. Read-only.

Takes no parameters.

list_api_keys

List active API keys for the current organization. Never returns raw secret material. Read-only and non-destructive; not separately rate-limited. Use create_api_key to mint one and revoke_api_key to retire one. Returns the key records with id, label, key_prefix, device_limit, status, created_at, last_used_at, and expires_at.

Takes no parameters.

create_api_key

Create a new API key for the current organization and return its raw_key value exactly once — it is never shown again, so store it immediately. expires_at optionally sets an ISO-8601 expiry and device_limit caps how many devices the key may register (validated against the plan ceiling, invalid_device_limit on excess). Key creation is rate-limited per organization (api_key_create_rate_limited). Use list_api_keys to see existing keys and revoke_api_key to retire one.

Parameterslabelrequiredexpires_atdevice_limit

revoke_api_key

Revoke one API key by id (find ids with list_api_keys). The key stops authenticating and the revocation cannot be undone from this tool. This is a credential revocation, not an idempotent delete: an unknown key_id — including an already-revoked one — fails with api_key_not_found (no silent no-op, so a mistyped id can never mask a live credential). Guardrails: revoking the organization's last active key is refused with cannot_revoke_last_key — create a replacement with create_api_key first. Returns key_id with revoked: true.

Parameterskey_idrequired

list_runs

List the organization's recent simulation runs, newest first, with their recommended_action, confidence, expected_value, mode, and created_at. Optional filters narrow by mode (auto or expert) and status (completed, failed, running); limit caps the results (default 20, up to 100). Use get_run for one run's full detail and get_analytics for aggregate trends. Read-only. Returns runs plus total.

Parametersmodelimitstatus

get_run

Fetch one simulation run by run_id with its full detail — the decision metrics and the request context it ran under. Use list_runs to find run ids. Read-only; an unknown run_id fails with not_found. Returns the run record: run_id, recommended_action, confidence, expected_value, mode, and created_at.

Parametersrun_idrequired

get_analytics

Get aggregate usage analytics over the organization's simulation runs inside a lookback window: total_simulations, avg_confidence, action_breakdown (how recommended actions distribute), and latency_p95_ms. days sets the window (default 30, range 1-365). Use list_runs for individual runs instead of aggregates. Read-only.

Parametersdays

get_usage

Get current billing period usage vs quota for this API key. Read-only and non-destructive; not separately rate-limited. Use get_limits for the plan's ceiling values. Returns simulations_used, simulations_limit, billing_period, and plan.

Takes no parameters.

log_decision

Persist a decision to the Decision Memory audit trail. Link to a simulation run_id to bind the full DecisionPlan context. Call record_outcome later to close the feedback loop and measure prediction accuracy. Every logged decision is immutably hashed — no tampering possible. Returns decision_id, chosen_action, expected_value, confidence, and created_at.

Parametersrun_idcontextrisk_p5risk_p95risk_polrationaleconfidenceresult_hashrequest_hashchosen_actionrequiredexpected_valueoptions_considered

list_decisions

Retrieve the Decision Memory audit trail — all logged decisions, most recent first. Use with_outcome_only=true to see only decisions where actual results have been recorded. outcome_delta = actual_outcome - expected_value: negative means worse than predicted. Read-only and non-destructive; not separately rate-limited. Returns decisions with id, chosen_action, expected_value, actual_outcome, outcome_delta, confidence, context, created_at, and outcome_recorded_at, plus total, page, limit, pages, and an accuracy_summary when outcomes exist.

Parameterspagelimitpage_sizewith_outcome_only

get_decision

Fetch one decision-memory record by id. Read-only and non-destructive; not separately rate-limited. Use list_decisions to find decision ids. Returns the full decision record including context, options_considered, risk fields, integrity hashes, and outcome fields when recorded.

Parametersdecision_idrequired

record_outcome

Close the feedback loop: record what actually happened after a decision was made. Sets actual_outcome and computes outcome_delta = actual - expected. Over time this data measures prediction accuracy and reveals systematic biases. Recording updates the persisted decision record in place; repeat calls with the same value converge. Returns decision_id, chosen_action, expected_value, actual_outcome, outcome_delta, and a summary line.

Parametersdecision_idrequiredoutcome_notesactual_outcomerequired

execute_decision

Dispatch a logged decision to an external webhook and persist the execution receipt. Use record_outcome instead when reporting a result rather than dispatching an action. Returns the delivery receipt: decision_id, webhook_url, execution_status, response_code, executed_at, and the policy and schema snapshot ids.

Parametersforcemetadatadecision_idrequiredwebhook_urlrequiredoverride_safetytimeout_seconds

delete_decision

Delete one decision-memory record by id. Deletion is permanent; review with list_decisions first. Deleting is idempotent: repeating the call on an already-deleted or never-existing id returns success with already_absent: true instead of an error. Returns the deletion confirmation for the decision_id.

Parametersdecision_idrequired

register_trigger

Register a real-time trigger that watches a data source for a threshold condition. When the condition is met, the engine auto-runs the simulation template and optionally fires a webhook. Examples: 'alert me when monthly revenue drops below $80k', 'simulate expansion if Downtown revenue exceeds $200k'. Use fire_trigger to test it immediately and delete_trigger to remove it. Returns trigger_id, name, status, condition, and created_at.

Parametersnamerequiredconditionrequireddescriptionwebhook_urlauto_executesimulation_templaterequiredexecution_webhook_url

list_triggers

List all registered triggers with their current status, last-checked time, and last-fired simulation result summary. Read-only and non-destructive; not separately rate-limited. Use register_trigger to add one and pause_trigger to silence one without deleting. Returns triggers with trigger_id, name, status, condition, last_checked_at, last_fired_at, and last_result_summary, plus count, total, page, limit, and pages.

Parameterspagelimitstatus

fire_trigger

Manually fire a trigger — evaluates its condition and runs the simulation template regardless of whether the threshold is currently met. Useful for testing triggers or forcing an immediate evaluation. Use pause_trigger to stop automatic firing without deleting the trigger. Returns trigger_id, condition_met, fired, simulation_run_id, recommended_action, expected_value, confidence, and fired_at.

Parametersforcetrigger_idrequired

pause_trigger

Pause or resume an existing trigger without deleting it. Returns trigger_id and the updated status.

Parameterspausedtrigger_idrequired

delete_trigger

Delete one trigger by trigger_id (find ids with list_triggers). The trigger is removed immediately and will no longer fire automatically; its registration cannot be recovered from this tool. To stop a trigger temporarily instead, use pause_trigger. Deleting is idempotent: repeating the call on an already-deleted or never-existing id returns success with already_absent: true instead of an error. Returns trigger_id with deleted: true.

Parameterstrigger_idrequired

Version history

8
  1. v1.0.31LatestSep 25, 2026
  2. v1.0.29Sep 25, 2026
  3. v1.0.28Sep 23, 2026
  4. v1.0.27Sep 23, 2026
  5. v1.0.26Sep 23, 2026
  6. v1.0.25Sep 22, 2026
  7. v1.0.14Sep 19, 2026
  8. v1.0.4Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts