Skip to content

docs(skills): enforce Web UI as sole method for connection info setup#1455

Merged
douenergy merged 6 commits intoCanner:mainfrom
goldmedal:docs/generate-mdl-connection-ui-only
Mar 17, 2026
Merged

docs(skills): enforce Web UI as sole method for connection info setup#1455
douenergy merged 6 commits intoCanner:mainfrom
goldmedal:docs/generate-mdl-connection-ui-only

Conversation

@goldmedal
Copy link
Copy Markdown
Contributor

@goldmedal goldmedal commented Mar 17, 2026

Summary

  • generate-mdl: Add blockquote prohibition at Step 1 — connection info can ONLY be set via Web UI, not programmatically
  • wren-connection-info: Remove "or directly in API calls" wording that gave agents justification to bypass Web UI
  • wren-usage: Clarify credential changes go through Web UI; @wren-connection-info is field reference only
  • getting_started_with_claude_code: Remove non-existent setup_connection(...) from MCP tool table, fix skill description
  • mcp-server README: Replace setup_connection() in generate-mdl example with health_check() + Web UI step
  • quickstart: Clarify "Connect a different database" points to Web UI
  • Version bumps: generate-mdl 1.3→1.4, wren-connection-info 1.3→1.4, wren-usage 1.0→1.1

Context

A user's AI agent attempted to configure DuckDB connection info programmatically via ibis-server API calls instead of using the Web UI. Root cause: multiple docs and skills either implied or explicitly stated that API-based configuration was possible (setup_connection(...) tool reference, "or directly in API calls for advanced workflows"). The ibis-server has no public write endpoint for connection info — only the Web UI can do this.

Test plan

  • Run /generate-mdl with an unconfigured connection — agent should direct user to Web UI
  • Verify version check in skills detects the bump and prompts update

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Clarified that connection credentials must be entered via the Web UI only; updated quickstart, getting-started, MCP server, and skill guides.
    • Reordered workflow: explicit MCP server registration, mandatory session restart, and revised MDL generation steps using MCP tools (health_check, table/constraint listing, deploy).
    • Added guidance on read-only mode and troubleshooting for MCP tooling availability.
  • Chores
    • Bumped several skill versions to reflect the updated docs and workflow.

goldmedal and others added 4 commits March 17, 2026 18:06
…setup

Add clear instructions that connection info can ONLY be set via the
Web UI. Agents were attempting to configure connections via ibis-server
API calls, which doesn't work — the ibis-server has no public write
endpoint for connection info.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- wren-connection-info: remove "or directly in API calls" wording that
  gave agents a reason to bypass the Web UI
- wren-usage: clarify that credential changes go through the Web UI,
  and @wren-connection-info is a field reference only

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- getting_started_with_claude_code: remove setup_connection from MCP
  tool table, add note that connection is Web UI only, fix
  wren-connection-info description to "field reference"
- mcp-server README: replace setup_connection call in generate-mdl
  example with health_check + Web UI step
- quickstart: clarify "Connect a different database" points to Web UI

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- generate-mdl: 1.3 → 1.4
- wren-connection-info: 1.3 → 1.4
- wren-usage: 1.0 → 1.1

Updated SKILL.md frontmatter, versions.json, and index.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions bot added the documentation Improvements or additions to documentation label Mar 17, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 17, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

Docs and skill metadata changed to require configuring database connection info via the MCP Web UI (http://localhost:9001). MCP server registration and MDL generation flows were updated to use MCP tooling (claude mcp add/list, health_check, list_remote_*), skill versions bumped, and programmatic credential setup removed.

Changes

Cohort / File(s) Summary
Getting started docs
docs/getting_started_with_claude_code.md
Rework phases to require Web UI connection configuration, add MCP registration steps (claude mcp add, claude mcp list), require new session for MCP tools, and change MDL generation to MCP-tools flow with health_check.
Quickstart
docs/quickstart.md
Rename/reorder phases to register MCP then generate MDL; replace direct /generate-mdl/API flows with MCP CLI commands and session-restart prerequisite; add read-only mode instructions and Web UI guidance.
MCP server README
mcp-server/README.md
Replace ibis-server API references with MCP-tools-based MDL flow; emphasize Web UI-only credential entry and include health_check/list_remote_* sequence.
Skills: generate-mdl & related
skills/generate-mdl/SKILL.md, skills/wren-quickstart/SKILL.md, skills/wren-usage/SKILL.md
Bump versions; update text to require Web UI for connection info; switch MDL generation and introspection steps to MCP tools; add notes about restarting sessions and WEB_UI_ENABLED=false fallback.
Connection-info skill
skills/wren-connection-info/SKILL.md
Version bump and rewrite to state connection info must be entered exclusively via the MCP Web UI; remove programmatic/API write options.
Skill manifests & versions
skills/index.json, skills/versions.json
Version increments: wren-connection-info 1.3→1.4, generate-mdl 1.3→1.4, wren-quickstart 1.2→1.3, wren-usage 1.0→1.1. No structural schema changes.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant Dev as Developer / CLI
participant UI as MCP Web UI
participant Claude as Claude Code Session
participant MCP as MCP Server
participant DB as Database
Dev->>UI: Enter connection info (credentials, type)
UI->>MCP: Persist connection info
Dev->>Claude: claude mcp add --transport http ... (register MCP)
Claude->>MCP: Register / establish MCP endpoint
Claude->>MCP: health_check()
MCP->>Claude: health OK
Claude->>MCP: list_remote_tables / list_remote_constraints
MCP->>DB: Introspect schema
MCP->>Claude: return tables/constraints
Claude->>Dev: /generate-mdl -> build MDL and deploy_manifest

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • douenergy
  • wwwy3y3

Poem

🐰 I hopped through docs with a ribbon and grin,
Web UI carrots tucked safely within,
No API crumbs scattered on the floor,
MCP tools hum and the MDL grows more,
Versions bumped — a tidy hop once more.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: enforcing the Web UI as the exclusive method for connection info configuration across documentation and skills.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
skills/wren-usage/SKILL.md (2)

15-18: ⚠️ Potential issue | 🟡 Minor

Update version references in the version check section.

The version check section still references version 1.0, but the skill was bumped to 1.1. This will cause incorrect version comparison behavior.

🛠️ Proposed fix
 Silently fetch `https://raw.githubusercontent.com/Canner/wren-engine/main/skills/versions.json`.
-Compare the `wren-usage` key with this skill's version (`1.0`).
+Compare the `wren-usage` key with this skill's version (`1.1`).
 If the remote version is newer, notify the user before proceeding:
 
-> A newer version of the **wren-usage** skill is available (remote: X.Y, installed: 1.0).
+> A newer version of the **wren-usage** skill is available (remote: X.Y, installed: 1.1).
 > Update with:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/wren-usage/SKILL.md` around lines 15 - 18, Update the hardcoded
installed-version string in the version check section from "1.0" to the current
"1.1" so the comparison against the remote `wren-usage` key is correct; locate
the text that reads "installed: 1.0" (the version check / notification block for
the wren-usage skill) and change it to "installed: 1.1" so the message "A newer
version of the **wren-usage** skill is available (remote: X.Y, installed: 1.1)"
reflects the actual installed version.

140-140: ⚠️ Potential issue | 🟡 Minor

Remove setup_connection(...) from the MCP tools table.

This tool does not exist in the MCP server. The PR objective is to remove references to setup_connection since connection info can only be configured via the Web UI. The code at mcp-server/app/wren.py:244-301 confirms there is no setup_connection tool registered.

🛠️ Proposed fix
 | `deploy(mdl_file_path=...)` | Load a compiled `mdl.json` |
-| `setup_connection(...)` | Configure data source credentials |
 | `list_remote_tables(...)` | Introspect database schema |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/wren-usage/SKILL.md` at line 140, Remove the non-existent tool entry
`setup_connection(...)` from the MCP tools table in SKILL.md: delete the table
row that lists `setup_connection(...) | Configure data source credentials` and
search the SKILL.md for any other references to `setup_connection` to remove or
replace them; confirm there is no corresponding registration in the Wren tools
code (the wren module's tool registration does not include a setup_connection
tool) so no code changes are required beyond removing the documentation
references.
🧹 Nitpick comments (1)
mcp-server/README.md (1)

208-208: Consider adding a language specifier to the fenced code block.

Static analysis flagged this code block as missing a language identifier. Adding text or another appropriate specifier improves rendering consistency.

💅 Proposed fix
-```
+```text
 User  → "Generate an MDL for my PostgreSQL ecommerce database"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@mcp-server/README.md` at line 208, Replace the plain fenced code block
delimiter in the README example with a language specifier (e.g., change the
opening ``` to ```text) so the snippet is rendered consistently; update the
block containing `User  → "Generate an MDL for my PostgreSQL ecommerce
database"` to begin with ```text and leave the closing ``` unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@skills/wren-usage/SKILL.md`:
- Around line 15-18: Update the hardcoded installed-version string in the
version check section from "1.0" to the current "1.1" so the comparison against
the remote `wren-usage` key is correct; locate the text that reads "installed:
1.0" (the version check / notification block for the wren-usage skill) and
change it to "installed: 1.1" so the message "A newer version of the
**wren-usage** skill is available (remote: X.Y, installed: 1.1)" reflects the
actual installed version.
- Line 140: Remove the non-existent tool entry `setup_connection(...)` from the
MCP tools table in SKILL.md: delete the table row that lists
`setup_connection(...) | Configure data source credentials` and search the
SKILL.md for any other references to `setup_connection` to remove or replace
them; confirm there is no corresponding registration in the Wren tools code (the
wren module's tool registration does not include a setup_connection tool) so no
code changes are required beyond removing the documentation references.

---

Nitpick comments:
In `@mcp-server/README.md`:
- Line 208: Replace the plain fenced code block delimiter in the README example
with a language specifier (e.g., change the opening ``` to ```text) so the
snippet is rendered consistently; update the block containing `User  → "Generate
an MDL for my PostgreSQL ecommerce database"` to begin with ```text and leave
the closing ``` unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 734ebb8b-ae3f-45b4-9e1e-0ea7fb87e220

📥 Commits

Reviewing files that changed from the base of the PR and between 09dca6c and 34958c3.

📒 Files selected for processing (8)
  • docs/getting_started_with_claude_code.md
  • docs/quickstart.md
  • mcp-server/README.md
  • skills/generate-mdl/SKILL.md
  • skills/index.json
  • skills/versions.json
  • skills/wren-connection-info/SKILL.md
  • skills/wren-usage/SKILL.md

goldmedal and others added 2 commits March 17, 2026 18:19
The previous ordering had generate-mdl (Phase 2) before MCP
registration (Phase 3). This meant agents had no MCP tools available
and fell back to calling ibis-server API directly, bypassing
connection info and hitting confusing errors.

New order across all docs and skills:
1. Start Docker container
2. Configure connection (Web UI) + Register MCP + New session
3. Generate MDL (via MCP tools)
4. Verify and query

Affected files:
- wren-quickstart skill (1.2 → 1.3)
- docs/quickstart.md Option B
- docs/getting_started_with_claude_code.md manual setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Recommend enabling read-only mode in the Web UI after setup is
confirmed working. This prevents agents from modifying connection
info or directly introspecting the database beyond the defined MDL.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@goldmedal goldmedal requested a review from douenergy March 17, 2026 10:23
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@skills/wren-quickstart/SKILL.md`:
- Around line 81-83: Replace unlabeled fenced code blocks used for directives
with language-labeled fences to satisfy markdownlint MD040; locate the three
occurrences containing the directive tokens "@wren-mcp-setup", "@generate-mdl",
and "@wren-project" (around the blocks at lines referenced in the review) and
change each opening triple-backtick to include a language identifier such as
"text" (e.g., ```text) so the fenced blocks become labeled and the lint warnings
are resolved.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f747c290-a645-46e6-aa83-bca73b9106d3

📥 Commits

Reviewing files that changed from the base of the PR and between 34958c3 and adca529.

📒 Files selected for processing (5)
  • docs/getting_started_with_claude_code.md
  • docs/quickstart.md
  • skills/index.json
  • skills/versions.json
  • skills/wren-quickstart/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • skills/index.json
  • docs/quickstart.md

Comment on lines 81 to 83
```
@generate-mdl
@wren-mcp-setup
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifiers to fenced code blocks (markdownlint MD040).

Line 81, Line 121, and Line 136 use unlabeled fenced blocks, which will keep triggering lint warnings.

Suggested fix
-```
+```text
 `@wren-mcp-setup`

- +text
@generate-mdl


-```
+```text
`@wren-project`
</details>




Also applies to: 121-123, 136-138

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.21.0)</summary>

[warning] 81-81: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @skills/wren-quickstart/SKILL.md around lines 81 - 83, Replace unlabeled
fenced code blocks used for directives with language-labeled fences to satisfy
markdownlint MD040; locate the three occurrences containing the directive tokens
"@wren-mcp-setup", "@generate-mdl", and "@wren-project" (around the blocks at
lines referenced in the review) and change each opening triple-backtick to
include a language identifier such as "text" (e.g., ```text) so the fenced
blocks become labeled and the lint warnings are resolved.


</details>

<!-- fingerprinting:phantom:poseidon:hawk -->

<!-- This is an auto-generated comment by CodeRabbit -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants