Skip to content

Search these docs from your AI tool

  • Antigravity
    {
      "mcpServers": {
        "edisyl-docs": {
          "serverUrl": "https://docs.edisyl.com/mcp"
        }
      }
    }
  • Claude CodeCLI
    claude mcp add edisyl-docs https://docs.edisyl.com/mcp --transport http --scope user
  • CodexCLI
    codex mcp add --url https://docs.edisyl.com/mcp edisyl-docs
  • Cursor
    {
      "mcpServers": {
        "edisyl-docs": {
          "type": "http",
          "url": "https://docs.edisyl.com/mcp"
        }
      }
    }
  • Gemini CLI
    gemini mcp add --transport http edisyl-docs https://docs.edisyl.com/mcp
  • Goose
    {
      "extensions": {
        "edisyl-docs": {
          "enabled": true,
          "name": "edisyl-docs",
          "type": "streamable_http",
          "uri": "https://docs.edisyl.com/mcp",
          "envs": {},
          "env_keys": [],
          "headers": {},
          "description": "",
          "timeout": 300,
          "bundled": null,
          "available_tools": []
        }
      }
    }
  • JetBrains AI Assistant
    {
      "mcpServers": {
        "edisyl-docs": {
          "type": "http",
          "url": "https://docs.edisyl.com/mcp"
        }
      }
    }

    Paste into Settings → Tools → AI Assistant → Model Context Protocol → Add → As JSON. Direct file writing isn’t supported — JetBrains stores this per-version as XML.

  • Junie (JetBrains)
    {
      "mcpServers": {
        "edisyl-docs": {
          "url": "https://docs.edisyl.com/mcp"
        }
      }
    }
  • OpenCode
    {
      "mcp": {
        "edisyl-docs": {
          "type": "remote",
          "url": "https://docs.edisyl.com/mcp"
        }
      }
    }
  • VS CodeCLI
    code --add-mcp '{"name":"edisyl-docs","type":"http","url":"https://docs.edisyl.com/mcp"}'
  • Windsurf
    {
      "mcpServers": {
        "edisyl-docs": {
          "serverUrl": "https://docs.edisyl.com/mcp"
        }
      }
    }

    Supports both stdio and native HTTP connections.

Packs & health

Every ask, teach, and task takes a pack. Over MCP, pass its id or slug as packId. From the CLI, <pack> is a slug, a case-insensitive name, or a UUID.

list_packs lists the packs in your current organization that you can read. Call it first, and pass a pack’s id or slug as packId to ask, teach, or task.

Input Type Required Meaning
search string No Narrow to packs whose name, slug, or description contains this. Up to 200 characters.

Returns { items }, each with id, slug, name, visibility, and description.

Permission: any org member can list packs they can read.

“Which packs do I have access to?”

CLI only
Terminal window
edisyl pack create --name "Acme metrics" --description "Core KPIs"
edisyl pack create --name "Finance close" --visibility restricted \
--admin cfo@acme.com --contributor ana@acme.com --viewer bo@acme.com
edisyl pack update <pack> --name "<new name>" --description "<new description>"
edisyl pack update <pack> --language ko --asked-languages ko,en
edisyl pack publish <pack> --visibility public
edisyl pack delete <pack> --confirm
Flag (create) Behavior
--name <name> Required. The pack’s display name.
--slug <slug> Optional. Derived from the name when omitted.
--description <text> Optional.
--visibility <tier> organization (default), restricted (only its members), or public (a domain pack in the cross-org catalog). A public pack is published only after its knowledge base exists. It never appears in the catalog unfinished.
--static Keep the pack unchanged. Answering and benchmarks still work. Automatic learning and calibration are turned off.
--admin, --contributor, --viewer <user> Grant that role to a person, by email or user id. Repeatable. Passing the same person to two of these flags is an error.
--org-members <role> Grant every current organization admin and operator one role: viewer, contributor, or admin (read and write are accepted for viewer and contributor). Organization consumers join only when you pass them to --admin, --contributor or --viewer. A person you pass to those flags gets that role instead.

Members are granted as part of the create. A restricted pack is never left without its members. Every person is looked up before the pack is created. An unknown email stops the create. As the creator, you are the pack’s admin. Organization consumers hold at most viewer access. A pack can be created with up to 500 members; add more afterwards with pack members add.

update takes at least one of --name, --description, --language, --asked-languages, or --static.

Flag (update) Behavior
--name <name> A new display name.
--description <text> A new description. "" clears it.
--language <tag> The pack’s primary language, as a BCP-47 tag (ko, en, zh-Hant). A pack detects it automatically from its first document. Detection never replaces a language you set. A language you set can’t be cleared.
--asked-languages <tags> Comma-separated BCP-47 tags for the languages people ask the pack in, such as ko,en. "" clears them.
--static Disable automatic learning and calibration. --static=false allows learning again; calibration stays paused until you resume it separately.

publish (alias visibility) moves a pack between the three tiers: public, organization, and restricted. It needs the publish capability on the pack.

CLI only
Terminal window
edisyl pack members list <pack>
edisyl pack members add <pack> ana@acme.com bo@acme.com --role contributor
edisyl pack members set-role <pack> ana@acme.com --role admin
edisyl pack members remove <pack> ana@acme.com

Roles are viewer (read), contributor (write), and admin. Pass a person’s email or user id. An email must belong to a member of the pack’s organization. add looks up every user first. An unknown email stops it before any grant is made. add exits non-zero if any grant fails. remove uses a user id exactly as given. You can use it to remove someone the organization no longer lists.

CLI only
Terminal window
edisyl pack connections list <pack>
edisyl pack connections get <pack> <connection-id>
edisyl pack connections detach <pack> <connection-id> --confirm

Shows the provider connections a pack can query, both SQL and API providers. GitHub and Linear connections attach directly to a pack. They never appear under data-sources list.

  • list reads what is attached and each connection’s stored health. A connection whose credentials were revoked still lists as attached.
  • get asks the provider what the connection can access now: the account it authenticates as and the repositories or teams it covers. Each call is a live provider request and is rate-limited per user.
  • detach removes this pack’s access and leaves the connection in the organization. It is refused while the pack still has SQL data sources mounted on the connection. Delete those first. Deleting the last one detaches the connection automatically.

All three need manage_sources on the pack. Without it, the CLI reports the pack as not found.

For the documents a pack holds, see pack documents.

CLI only

A pack’s calendar sets three things: the month its fiscal year starts, the day its weeks start, and its time zone. A pack with no calendar uses the calendar year. Weeks start on Monday and the time zone is UTC. The pack has no fiscal year, and it declines questions about fiscal periods such as “FY2025”.

Terminal window
edisyl pack calendar get <pack>
edisyl pack calendar set <pack> --fiscal-start 7 --week-start sunday --time-zone America/Denver
edisyl pack calendar set <pack> --time-zone Asia/Seoul
edisyl pack calendar clear <pack>
Flag (set) Behavior
--fiscal-start <1-12> The month the fiscal year starts, from 1 (January) to 12. Required the first time a pack gets a calendar. A pack whose fiscal year follows the calendar year passes 1.
--week-start <day> monday or sunday. Defaults to monday.
--time-zone <zone> An IANA time zone, such as America/Denver. Defaults to UTC.

How each setting changes a question:

Setting Example Effect on a question
--fiscal-start 7 The fiscal year starts in July. “This fiscal year” starts on July 1.
--fiscal-start 1 The fiscal year is the calendar year. The pack answers fiscal questions. Without a calendar, it declines them.
--week-start sunday Weeks start on Sunday. “Last week” runs from Sunday to Saturday.
--time-zone America/Denver Dates are read in Denver time. “Yesterday” ends at midnight in Denver, not at midnight UTC.

set changes only the settings you pass. The other settings keep their current values. Setting what the pack already has writes nothing. After a change, the pack uses the new calendar for periods such as “last quarter”. clear removes the calendar. The pack then uses the calendar year again.

get needs read access to the pack. set and clear are owner-only and need manage_pack.

pack_health and pack health report the pack’s readiness as a diagnosis. For each tier and for the deployment, it shows accuracy, time, and cost against target. Each figure has its gap, its number of samples, and a 95% interval. One test sample can move a figure by several points. Findings come next, ranked by how much each could improve the pack. Each finding lists the runs and cases behind it and the command to run next. Start here. See Improving answers for how to read the findings and what to fix.

pack_health returns the diagnosis for one pack.

Input Type Required Meaning
packId string Yes The pack’s id or slug.
window 7d, 30d, or all No The live-ask window that time and cost are read from. Default 30d.

Returns { verdict, figures, findings, mix, knownCoverage, paired, runs, snapshot, stability, pendingDecisions }. stability holds the stopping rule’s verdict for each measure and tier. It does not gate anything. Read a finding’s run with pack_run_cases.

“Is the growth-metrics pack ready? What is holding it back?”

To check a fix, compare the values from runs before and after it, not two windows. Each point shows the run that recorded it.

pack_health_metric reads one metric over the pack’s kept snapshots, oldest first.

Input Type Required Meaning
packId string Yes The pack’s id or slug.
key string Yes The metric, such as tier.accuracy, plans.yield.admitted, or spend.phase_usd.
tier known, understood, or new No Only this tier.
dimension string No Only this dimension of a broken-down metric.
window 7d, 30d, or all No The one window to read, for a windowed metric.
since date-time No Values from this RFC 3339 time on, with an offset such as Z.
limit integer No The newest values to return, 1 to 500. Default 60.

Returns { metric, points, truncated }.

“Has understood-tier accuracy improved since the last fix?”

pack_run_cases reads one of a pack’s test runs case by case, with Pack health’s verdicts. For each case it returns the question, answering tier, verdict, scorer reason, plan shape, governed queries, reference SQL, answer excerpt, wait, and cost. Wrong cases come first.

Input Type Required Meaning
packId string Yes The pack’s id or slug.
runId string No The run to read. Default latest, the newest complete cold run.
tier known, understood, new, or none No Only cases this tier answered.
verdict correct, wrong, or excluded No Only cases with this verdict.
reason string No Only cases whose scorer reason contains this.
questionType string No Only cases of this question type.
answerable boolean No Only cases whose target is not a refusal.
groupBy string No Count the matched cases by reason, plan, model, measure, filter, time, stage, or question-type.
limit integer No Cases to return, 0 to 200. Default 20. 0 returns the groups alone.
offset integer No Cases to skip. Pass the previous response’s nextOffset.

Returns { runId, run, matched, groups, cases, nextOffset }.

“Show me the wrong cases from the latest run, grouped by reason.”

CLI only
Terminal window
edisyl pack live-grades <pack>

Lists the newest real asks graded wrong, and the cold re-checks of any plan that was quarantined.

Terminal window
edisyl pack context edit <pack> # PACK.md, owner-only
edisyl pack vocabulary preview <pack> "<question>"
edisyl pack objectives list <pack>

Editing PACK.md is CLI only. The Lexicon and objectives also have MCP tools. See pack context, pack vocabulary, and pack objectives.

Report incorrect code

Please provide a detailed description of the incorrect code.