mcpbeat Sign in

Tidewave Integration Skill for Claude

Tidewave MCP runtime tools — debugging, smoke testing, live state; Use when evaluating code in a running Phoenix app.

4k tokens
context cost
the whole folder, loaded on every use
4
files
instructions only
0
copies elsewhere
how many repositories repackaged it
514
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill tidewave-integration

What comes with it

11 504 bytes besides the instruction
references/proactive-patterns.md
references/tool-examples.md
references/validation-checklist.md

The instruction itself

12 sections, as written by the author

Tidewave MCP Integration

Runtime intelligence for Phoenix apps via MCP. Prefer Tidewave tools over Bash when available.

Iron Laws — Never Violate These

  • DEV ONLY — Never use Tidewave tools in production contexts. Avoid on shared dev servers with production data copies
  • PREFER TIDEWAVE OVER BASHmcp__tidewave__get_docs > web_fetch, execute_sql_query > psql
  • CHECK AVAILABILITY FIRST — Use /mcp command or detect mcp__tidewave__ tools
  • SQL IS READ-HEAVY — Use execute_sql_query for SELECT, be careful with mutations
  • EXACT VERSIONSget_docs returns docs for YOUR mix.lock versions, not latest

Quick Reference

| Task | Tidewave Tool | Fallback |

|------|---------------|----------|

| Get docs | mcp__tidewave__get_docs Module.func/3 | web_fetch hexdocs.pm/... |

| Run code | mcp__tidewave__project_eval | mix run -e "code" |

| SQL query | mcp__tidewave__execute_sql_query | psql $DATABASE_URL |

| Find source | mcp__tidewave__get_source_location | grep -rn "defmodule" |

| Inspect DOM | mcp__Tidewave-Web__browser_eval | Manual browser inspection |

| List schemas | mcp__tidewave__get_ecto_schemas | Read lib/*/schemas/ |

| Read logs | mcp__tidewave__get_logs level: :error | tail -f log/dev.log |

Detection

# Check endpoint
curl -s http://localhost:4000/tidewave/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"ping"}'

Or use /mcp in Claude Code to see connected servers.

Essential Patterns

Test Function Immediately

# mcp__tidewave__project_eval
MyApp.Accounts.create_user(%{email: "[email protected]"})

Verify Migration

-- mcp__tidewave__execute_sql_query
SELECT column_name, data_type FROM information_schema.columns
WHERE table_name = 'users';

Debug LiveView (with PID from browser)

# mcp__tidewave__project_eval
pid = pid("0.1234.0")
:sys.get_state(pid) |> Map.get(:socket) |> Map.get(:assigns) |> Map.keys()

Setup Requirements

# mix.exs
{:tidewave, "~> 0.6", only: :dev}

# endpoint.ex (in dev block)
plug Tidewave

# config/dev.exs (for LiveView source mapping)
config :phoenix_live_view,
  debug_heex_annotations: true,
  debug_attributes: true

The dependency and endpoint plug expose Tidewave's streamable HTTP server; they

do not register it with an MCP client. Configure the current runtime separately

with http://localhost:<port>/tidewave/mcp, then verify that Tidewave tools are

available before relying on this skill.

Reliability Guards

Worktree/port check (FIRST, in multi-worktree setups): multiple

worktrees = multiple dev servers on different ports. Before trusting any

Tidewave result, confirm the endpoint belongs to THIS checkout: grep

config/dev.exs for the configured port, and verify with

project_eval File.cwd!() — if it returns a different worktree path,

you're debugging the wrong server.

Schema introspection BEFORE SQL: never guess column names. Run

get_ecto_schemas (or query information_schema.columns) before writing

SQL against a table you haven't already introspected this session. A

guessed-column error costs more than the introspection.

Output-size guard: runtime output is unbounded. Always cap it —

LIMIT 20 in SQL, Enum.take(20) in evals, `inspect(x, limit: 50,

printable_limit: 500)` for large structs. Re-query narrower rather than

dumping wide.

browser_eval fallback: if mcp__Tidewave-Web__browser_eval is absent

or errors, don't stall — inspect the same state server-side: LiveView

assigns via :sys.get_state(pid) in project_eval, rendered HTML via

Phoenix.LiveViewTest, or read the template source directly.

QA walkthrough pattern: after a feature completes, run a short

checklist through project_eval/browser_eval: create the record, fetch

it back, exercise the main event, check get_logs level: :error is clean.

Report each step's pass/fail — not just "smoke test passed".

Proactive Runtime Checks

Don't just use Tidewave reactively. **Query runtime state at

workflow checkpoints** automatically:

  • After code edits: get_logs level: :error (catch runtime crashes)
  • After features complete: project_eval smoke test (behavioral check)
  • Before planning: get_ecto_schemas + routes eval (concrete context)
  • When investigating: Auto-capture errors before asking user
  • LiveView UI bugs: browser_eval to inspect DOM state before editing components

See references/proactive-patterns.md for full integration points.

References

For detailed patterns, see:

  • references/proactive-patterns.md - Push-like runtime patterns at workflow checkpoints
  • references/tool-examples.md - Complete tool usage examples
  • references/validation-checklist.md - Runtime validation patterns

Other skills for the same job

different authors, same section of the catalogue
Webapp Testing
by anthropics
vendor ×12

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

6k tokens scripts
Finishing A Development Branch
by ZhanlinCui
×7

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1k tokens
Test Driven Development
by w95
×7

Use when implementing any feature or bugfix, before writing implementation code

2k tokens
Systematic Debugging
by ratacat
×7

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes

10k tokens scripts
Verification Before Completion
by ZhanlinCui
×6

Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always

1k tokens
Backtest Expert
by BaggaT236
×3

Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.

15k tokens scripts
Adaptyv
by christophacham
×3

Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.

16k tokens
Aeon
by christophacham
×3

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

19k tokens

How to use it

Copy the folder

Take oliver-kriska/claude-elixir-phoenix-codex-tidewave-integration from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.