{"schema_version":"1.0","name":"io.oxyo/oxyo-mcp","display_name":"Oxyo — Persistent XY Informational DNA & Verified Python MCP","version":"1.1.0","description":"Persistent contradiction-free cross-session memory, deterministic isolated Python verification, causal root-cause graphs, and formal constraint proving for Claude Code, Cursor, Codex, Windsurf, VS Code, and Gemini. Cuts IDE quota burn by 60-72%.","homepage":"https://oxyo.si","documentation_url":"https://oxyo.si/developers","mcp_page_url":"https://oxyo.si/mcp","vendor":{"name":"OMNIAMUS S.R.L.","url":"https://oxyo.si","email":"contact@oxyo.si","country":"RO"},"remotes":[{"type":"streamable-http","url":"https://oxyo.si/mcp","authentication":{"type":"bearer","header":"Authorization","scheme":"Bearer","prefix":"oxy_live_","discovery_unauthenticated":true,"signup_url":"https://oxyo.si/app?signup=1","free_tier":"Explorer plan includes 50 free MCP tool calls (no credit card required)."}}],"packages":[{"registry":"npm","name":"oxyo-mcp","command":"npx","args":["-y","oxyo-mcp"],"env":["OXYO_API_KEY"]},{"registry":"pypi","name":"oxyo-mcp","command":"uvx","args":["oxyo-mcp"],"env":["OXYO_API_KEY"]}],"capabilities":{"tools":true,"resources":false,"prompts":false},"tools":[{"name":"oxyo_session_pack","description":"Load a compact session-start context capsule (<350 tokens) returning active contradiction-free project/global beliefs, recent actions, root-cause warnings, and verified skills. Call once at cold start instead of `oxyo_recall`; use `oxyo_recall` for targeted mid-session searches.","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"Project or repository scope identifier (e.g. 'oxyo', 'backend', or 'global')."},"focus":{"type":"string","description":"Optional current task focus query used to rank relevant rules and warnings.","default":""},"auto_consolidate":{"type":"boolean","description":"Automatically archive redundant older episodes when episode count exceeds threshold.","default":true}}}},{"name":"oxyo_recall","description":"Search persistent memory by keyword and meaning, returning compact episodic snippets, active contradiction-free beliefs, root-cause chains, and verified Python skills. Use for targeted mid-session lookups; call `oxyo_session_pack` instead at session cold start.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language or keyword query to match against beliefs, episodes, and skills."},"scope":{"type":"string","description":"Optional project/repo scope filter (automatically includes 'global' rules)."},"k_episodes":{"type":"integer","description":"Maximum number of matching episodic snippets to return (1..20).","default":4},"k_beliefs":{"type":"integer","description":"Maximum number of active beliefs to return (1..30).","default":8},"max_episode_chars":{"type":"integer","description":"Character cap per returned episode snippet before head/tail compaction.","default":560},"full_episodes":{"type":"boolean","description":"Return uncompacted full episode text instead of token-budgeted snippets.","default":false},"reinforce_ids":{"type":"array","items":{"type":"string"},"description":"Optional memory item IDs from prior recalls that proved helpful on the task."}},"required":["query"]}},{"name":"oxyo_remember_episode","description":"Append a timestamped task action, architectural decision, or observation to episodic history, returning the stored episode metadata. Use for chronological event logs; use `oxyo_remember_belief` instead for standing rules or facts.","inputSchema":{"type":"object","properties":{"content":{"type":"string","description":"Concise summary of the completed action, decision, or technical observation."},"kind":{"type":"string","enum":["observation","action","thought","user"],"description":"Event category ('action' for changes made, 'observation' for findings, 'user' for requests).","default":"observation"},"scope":{"type":"string","description":"Project/repo scope where this episode applies (defaults to 'global')."},"importance":{"type":"number","description":"Base retention priority score between 0.0 (trivial) and 1.0 (critical milestone).","default":0.65},"use_neural_salience":{"type":"boolean","description":"Automatically calibrate retention priority based on novelty and information density.","default":true}},"required":["content"]}},{"name":"oxyo_remember_belief","description":"Persist a durable fact, project rule, or user preference, automatically deduplicating paraphrases and superseding contradicted older 1:1 claims while preserving 1:N additive facts. Use for standing truths; use `oxyo_remember_episode` for transient chronological events.","inputSchema":{"type":"object","properties":{"claim":{"type":"string","description":"Single self-contained factual statement, configuration rule, or user preference."},"confidence":{"type":"number","description":"Epistemic certainty score from 0.0 (tentative) to 1.0 (verified ground truth).","default":0.88},"scope":{"type":"string","description":"Project/repo scope for conflict resolution and recall (defaults to 'global')."}},"required":["claim"]}},{"name":"oxyo_belief_revisions","description":"Retrieve the immutable audit log of superseded beliefs paired with the newer claims that replaced them. Use to inspect historical rule changes and contradiction resolutions; use `oxyo_recall` for active beliefs.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"Maximum number of recent belief revision entries to return (1..100).","default":20}}}},{"name":"oxyo_causal_record","description":"Record or reinforce a directed cause-and-effect link in the project root-cause graph, returning updated edge confidence and observation counts. Use when logging newly verified bug causes or system dependencies; use `oxyo_causal_infer` to query paths.","inputSchema":{"type":"object","properties":{"cause":{"type":"string","description":"Upstream trigger component, config change, or condition (e.g. 'missing_db_index')."},"action":{"type":"string","description":"Relationship verb connecting cause to effect (e.g. 'causes', 'prevents', 'triggers').","default":"causes"},"effect":{"type":"string","description":"Downstream symptom, failure mode, or system outcome (e.g. 'checkout_timeout_504')."},"polarity":{"type":"integer","enum":[1,-1],"description":"Direction of influence: 1 if cause increases/triggers effect, -1 if it prevents/reduces it.","default":1},"succeeded":{"type":"boolean","description":"True if the link was confirmed in practice; False to down-weight a refuted hypothesis.","default":true},"scope":{"type":"string","description":"Project/repo scope for isolating causal graphs (defaults to 'global')."}},"required":["cause","effect"]}},{"name":"oxyo_causal_infer","description":"Query the root-cause graph to trace upstream failure sources (`diagnose`), downstream blast radius (`intervene`), simulated interventions (`do_calculus`, `counterfactual`), or highest-value diagnostic checks (`experiments`). Use to analyze recorded dependencies; call `oxyo_causal_record` to add new edges.","inputSchema":{"type":"object","properties":{"entity":{"type":"string","description":"Target symptom (for 'diagnose') or upstream node (for 'intervene') to analyze."},"mode":{"type":"string","enum":["intervene","diagnose","do_calculus","counterfactual","experiments"],"description":"Analysis mode: 'diagnose' (causes), 'intervene' (effects), 'do_calculus', 'counterfactual', or 'experiments'.","default":"intervene"},"do":{"type":"object","description":"Optional forced node state map {node: 0.0..1.0} for 'do_calculus' or 'counterfactual'."},"factual":{"type":"object","description":"Optional observed node state map {node: 0.0..1.0} for 'counterfactual' queries."},"max_hops":{"type":"integer","description":"Maximum multi-hop traversal depth across the causal graph (1..8).","default":4},"scope":{"type":"string","description":"Optional project/repo scope filter."}}}},{"name":"oxyo_verify_python","description":"Execute deterministic Python math, financial `Decimal`, or algorithmic checks inside an isolated zero-network sandbox (`RESULT = ...`), returning exact `RESULT`, stdout, and optional boundary-fuzz results. Use for procedural Python verification; use `oxyo_prove_constraints` for declarative constraint solving.","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Self-contained standard-library Python code assigning final output to `RESULT = ...`."},"timeout_s":{"type":"number","description":"Maximum execution wall-time in seconds before termination (0.5..10.0).","default":4.0},"fuzz":{"type":"boolean","description":"Run automated boundary/edge-case property fuzzing and determinism checks.","default":false},"entrypoint":{"type":"string","description":"Optional top-level function name in `code` to target during boundary fuzzing."},"invariants":{"type":"array","items":{"type":"string"},"description":"Optional Python boolean expressions (e.g. 'RESULT >= 0') asserted after execution."}},"required":["code"]}},{"name":"oxyo_skill_register","description":"Validate and persist a reusable Python function into the skill library only after 100% of supplied `test_cases` pass in isolation, returning verification status. Use to save new tested utilities; use `oxyo_skill_invoke` to list or execute existing skills.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Unique snake_case identifier for the reusable skill."},"entrypoint":{"type":"string","description":"Top-level Python function name inside `code` invoked when running the skill."},"description":{"type":"string","description":"Clear summary of inputs, algorithm, and return value for future discovery."},"code":{"type":"string","description":"Pure standard-library Python source defining the `entrypoint` function."},"test_cases":{"type":"array","items":{"type":"object"},"description":"Non-empty list of test objects {'args': [...], 'expected': ...} verified before saving."},"uses_skills":{"type":"array","items":{"type":"string"},"description":"Optional names of previously registered skills composed by this function."},"share_collective":{"type":"boolean","description":"Allow sharing anonymized verified utility patterns with the collective skill pool.","default":true}},"required":["name","entrypoint","description","code","test_cases"]}},{"name":"oxyo_skill_invoke","description":"List registered Python skills (`action='list'`) or execute a named skill (`action='execute'`) with arguments in isolation, returning its deterministic return value. Use to run already-verified skills; call `oxyo_skill_register` first to create a new skill.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["list","execute"],"description":"Choose 'list' to browse available skills or 'execute' to run `name` with `args`.","default":"list"},"name":{"type":"string","description":"Registered skill name to execute (required when action='execute')."},"args":{"type":"array","items":{},"description":"Positional JSON arguments passed to the skill entrypoint when action='execute'."}}}},{"name":"oxyo_consolidate","description":"Compact older episodic history by archiving redundant entries and promoting recurring patterns while preserving the latest episodes, returning compaction statistics. Use for fast episodic cleanup; use `oxyo_sleep_abstract` when also distilling code traces into skills.","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"Optional project/repo scope to compact (consolidates all scopes if omitted)."},"keep_recent":{"type":"integer","description":"Number of newest episodes in the scope kept verbatim without compaction.","default":20}}}},{"name":"oxyo_goal","description":"Manage persistent multi-session task dependency graphs (`create`, `decompose`, `next`, `update`, `tree`), returning unblocked next tasks and automatically propagating failure blockers. Use for multi-step project roadmaps across sessions; use `oxyo_remember_episode` for single-step logs.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["create","decompose","next","update","tree"],"description":"Operation: 'create' goal, 'decompose' into subgoals, 'next' unblocked tasks, 'update' status, or 'tree'.","default":"next"},"goal_id":{"type":"string","description":"Target goal ID for 'decompose', 'update', or subtree inspection."},"parent_id":{"type":"string","description":"Optional parent goal ID when creating a nested sub-goal."},"title":{"type":"string","description":"Concise actionable goal title (required when action='create')."},"acceptance_criteria":{"type":"string","description":"Concrete verification condition defining when the goal is complete.","default":""},"depends_on":{"type":"array","items":{"type":"string"},"description":"List of prerequisite goal IDs that must complete before this goal unblocks."},"prospective_trigger":{"type":"string","description":"Optional context cue or file/topic pattern that surfaces this goal automatically.","default":""},"priority":{"type":"number","description":"Scheduling priority from 0.0 (low) to 1.0 (urgent) used to rank 'next' tasks.","default":0.75},"subgoals":{"type":"array","items":{"type":"object"},"description":"Child goal specs [{'title': ..., 'acceptance_criteria': ...}] when action='decompose'."},"chain_sequentially":{"type":"boolean","description":"Automatically wire each decomposed subgoal to depend on the preceding subgoal.","default":false},"status":{"type":"string","enum":["pending","in_progress","completed","failed","blocked"],"description":"New lifecycle state applied to `goal_id` when action='update'."},"evidence":{"type":"string","description":"Verification output, commit hash, or test summary recorded on status update.","default":""},"failure_cause":{"type":"string","description":"Root-cause label logged to the causal graph when updating status to 'failed'.","default":""},"scope":{"type":"string","description":"Optional project/repo scope for isolating goal trees."},"limit":{"type":"integer","description":"Maximum number of unblocked tasks returned when action='next'.","default":5}}}},{"name":"oxyo_sleep_abstract","description":"Distill verified code execution traces into tested, reusable functions in the persistent skill vault while compacting older episodic logs. Use after coding milestones to extract skills; use `oxyo_consolidate` for episode cleanup without skill synthesis.","inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"Optional project/repo scope to process."},"keep_recent":{"type":"integer","description":"Number of newest episodes retained verbatim during memory compaction.","default":20},"max_new_skills":{"type":"integer","description":"Maximum number of newly synthesized skills promoted in one pass (1..10).","default":4},"traces":{"type":"array","items":{"type":"object"},"description":"Optional verified trace objects [{'prompt': ..., 'verified_code': ...}] to abstract."}}}},{"name":"oxyo_prove_constraints","description":"Solve bounded discrete constraint systems (`action='satisfy'` with optional `minimize`/`maximize`) or prove universal invariants (`action='prove'`, returning a formal proof or minimal counterexample). Use for declarative constraint/invariant models; use `oxyo_verify_python` for general Python scripts.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["prove","satisfy"],"description":"Choose 'prove' to verify `assumptions => claim` universally, or 'satisfy' to find an assignment.","default":"prove"},"variables":{"type":"object","description":"Bounded variable domain map, e.g. {'x': {'type': 'int', 'min': 0, 'max': 50}}."},"claim":{"type":"string","description":"Boolean invariant expression that must hold across all valid states (for action='prove')."},"assumptions":{"type":"array","items":{"type":"string"},"description":"Precondition boolean expressions constraining valid input states (for action='prove')."},"constraints":{"type":"array","items":{"type":"string"},"description":"Boolean constraint expressions that a solution must satisfy (for action='satisfy')."},"objective":{"type":"string","description":"Optional arithmetic expression to optimize across valid assignments (for action='satisfy')."},"sense":{"type":"string","enum":["minimize","maximize"],"description":"Optimization direction ('minimize' or 'maximize') when `objective` is provided.","default":"minimize"}},"required":["variables"]}},{"name":"oxyo_self_play_distill","description":"Generate and deterministically verify synthetic parametric coding challenges in isolation, returning curated verified solution traces and optionally promoting reusable helper skills. Use for autonomous skill warm-up and trace curation; use `oxyo_verify_python` to check a single snippet.","inputSchema":{"type":"object","properties":{"run_self_play":{"type":"boolean","default":true,"description":"Generate and verify new parametric problems before exporting traces."},"difficulty":{"type":"integer","default":2,"description":"Problem complexity tier from 1 (foundational) to 5 (advanced)."},"max_problems":{"type":"integer","default":3,"description":"Number of synthetic problems to generate and verify in this run (1..8)."},"max_per_family":{"type":"integer","default":3,"description":"Maximum verified traces retained per problem family during curation."},"export_corpus":{"type":"boolean","default":true,"description":"Export the curated verified trace corpus after problem verification."},"promote_skills":{"type":"boolean","default":true,"description":"Automatically register verified reusable helper functions into the skill library."},"seed":{"type":"integer","description":"Optional integer RNG seed for reproducible problem generation."}}}}]}