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.

Closing gaps: teach vs. task

connect a data source ──► creates a pack
│
teach (add knowledge) ─────┤
▼
ask the pack ◄─── your questions
│
can't answer = a gap
┌─────┴─────┐
knowledge-miss data-miss
→ teach → task (curate)
└──► ask again ◄──┘

This loop is the steady state of operating a pack. Answer questions with ask. When it can’t, that’s a gap, and it tells you enough to route it:

  • An answer that says it lacks a definition is a knowledge-miss → teach.
  • An answer that can’t find or resolve the data (“no rows”, “couldn’t resolve”) is a data-miss → task.

ask won’t fabricate an answer to paper over either kind of gap.

When ask lacks a fact or definition, the fix is more knowledge. Pick the cheapest reliable source for the missing topic:

  1. You already know it, or it’s general: draft a short, factual note.
  2. Publicly researchable: research it, synthesize a concise note, cite the sources. Or hand it to the pack: edisyl task "$PACK" "research X and add it to the pack".
  3. Org-internal or unverifiable: ask whoever owns that knowledge to provide it. Don’t invent it.

Only on confirmation:

Terminal window
edisyl teach "$PACK" --text "<the note>" # or --file <path>
edisyl action watch <action-id> # wait until indexed
edisyl ask "$PACK" "<the failing question>" --wait # re-ask

When ask can’t find or resolve modeled data, hand the pack the work in plain language. By default, task runs the pack’s coordinated fleet: a planner delegates to specialists, models tables, and enriches the semantic layer so the next ask lands. Pass --fast for a single direct executor on a bounded objective.

Terminal window
action_id=$(edisyl task "$PACK" "The 'active wallets' question failed to resolve — model the wallet/swap tables so it answers." --id-only)
edisyl action watch "$action_id" # narrates the plan and each step as it moves
edisyl action plan <action-id> # the board on demand: what's working now, what's up next
edisyl action events <action-id> # raw event tail, when you need to diagnose
edisyl action get <action-id> # summary + artifacts once terminal
edisyl ask "$PACK" "<the failing question>" --wait # re-ask — it should land now

task is also the verb for any broader work: “audit the validator docs and flag anything stale”, “focus enrichment on the DeFi sources”, and a task can itself ask and teach as child Actions.

Curate once after connecting a source, and whenever a data-miss ask exposes a real gap. Don’t curate on every question, and don’t curate a knowledge-miss; that’s a teach, not a task.

This loop is reactive by nature: it only routes a gap once an ask exposes it. To declare what a pack must answer before anyone asks, see Declaring objectives, the standing counterpart to this same routing instinct.

Next: Scheduling recurring work turns this same loop into something that runs itself.

Report incorrect code

Please provide a detailed description of the incorrect code.