
Tidewave Phoenix
io.github.tidewave-ai由 GitHub 帳號 tidewave-ai 發布v0.8.0更新於 Oct 24, 2026
Runtime-level MCP server for Phoenix development: run code, read logs, query the DB, read docs.
概覽
針對 Phoenix 應用程式的執行階段層級 MCP 伺服器,讓編碼代理執行 Elixir 程式碼、讀取即時日誌、查詢開發資料庫,並查閱文件與原始碼位置。
- 可以做什麼
- 在執行中的 Phoenix 應用程式內執行 Elixir 程式碼,等於給代理一個 IEx 工作階段
- 讀取應用程式的即時伺服器日誌,包含請求日誌與呼叫堆疊
- 對應用程式的開發資料庫執行 SQL 查詢
- 依 mix.lock 鎖定的確切 hex 套件版本查閱文件
- 找出模組或函式定義所在的檔案與行號,包含相依套件中的定義
- 適用情境
- 適合編碼代理開發 Phoenix 應用程式時使用:與其猜測行為,不如在執行中的應用程式裡重現失敗路徑、查看函式回傳值、請求後檢查日誌,或核對開發資料庫中的資料。
- 執行需求
- 需在應用程式中加入僅供開發環境使用的 tidewave hex 套件,並在 Phoenix endpoint 中加入 Tidewave plug。應用程式需以開發模式執行;MCP 用戶端透過 streamable HTTP 連線到應用程式的 /tidewave/mcp 路徑與連接埠(例如 localhost:4000),連接埠不固定時(例如使用 worktree)可改用 mix tidewave.proxy 的 STDIO 方式。建議使用 Phoenix LiveView 1.1 或更新版本。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Tidewave Phoenix,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Tidewave Phoenix
Tidewave Phoenix is an MCP server that provides runtime-level tools for developing Phoenix apps using coding agents.
Your agent will be able to use this MCP server to talk to your running Phoenix app in development to:
- execute code in the context of the running app (like an IEx session for agents)
- read the app's live logs
- query your development database
- get source locations of modules and functions
- read documentation pinned to the exact hex package versions your project depends on
This MCP server is an open-source component of Tidewave, the agentic development environment for Phoenix and Rails.
You can use this project as a standalone MCP server or integrated with the Tidewave product by following the installation instructions below.
Installation
1. Add the Tidewave hex package to your app
Option 1: Manually
Add the tidewave package to your mix.exs:
Then, for Phoenix applications, go to your lib/my_app_web/endpoint.ex and right above the if code_reloading? do block, add:
[!TIP] Tidewave works best with Phoenix LiveView v1.1 or later. Once you update it, make sure to enable the following options in your
config/dev.exs:Those are enabled by default for Phoenix v1.8+ apps.
Option 2: Using Igniter
Alternatively, you can use igniter to automatically install Tidewave MCP into an existing Phoenix application:
Umbrella projects
For umbrella projects, you can follow the manual steps above in the application that defines your Phoenix endpoint (typically apps/your_app_web).
2. Add the Tidewave MCP to your agent/editor
Add the Tidewave MCP server to your editor or MCP client configuration as the type "http" (streamable), pointing to the /tidewave/mcp path and port your web application is running at. For example, http://localhost:4000/tidewave/mcp.
We also have specific instructions for:
[!TIP] If you are using worktrees, you are likely running your web server on different ports, and therefore there isn't a single host and port combo you can use.
In such cases, you may want to add
mix tidewave.proxyas STDIO MCP instead, which adds a "port" parameter to all tool definitions, and is responsible to dispatch to the correct application.
Usage
As with any other MCP server, your agent will call the tools exposed by the Tidewave MCP whenever it sees fit. But you can also prompt it to call them explicitly.
Available MCP tools
project_eval
Evaluates Elixir code within your running application, giving the agent access to your runtime, dependencies, and in-memory data. It's like an IEx for the agent.
Your agent can use it when it would rather run code than assume behavior, grounding its next step in what the running app actually does. For example, calling a function to see what comes back or reproducing a failing code path against live app state to debug it.
execute_sql_query
Executes a SQL query within your app's development database.
Your agent can use it to run any SQL against your development database. Useful for the agent to verify the result of an action.
get_docs
Get the documentation for a given module/function. It consults the exact versions locked in your project's mix.lock, ensuring you get correct information.
get_logs
Reads logs written by the server.
Your agent can use it to see what happened after a request. For example, reading the request log and backtrace when something misbehaves.
get_source_location
Get the source location for a given module/function, across both your app and its dependencies.
Your agent can use it to jump straight to where a module/function is defined, by file and line, instead of grepping for it, including when the definition lives in a hex dependency.
Troubleshooting
Using multiple hosts/subdomains
If you are using multiple hosts/subdomains during development, you must use *.localhost, as such domains are considered secure by browsers. Additionally, add the following immediately @session_options definition in your lib/your_app_web/endpoint.ex:
The above will allow your application to run embedded within Tidewave across multiple subdomains, as long as it is using a secure context (such as admin.localhost, www.foobar.localhost, etc).
Content security policy
If you have enabled Content-Security-Policy, Tidewave will automatically enable "unsafe-eval" under script-src in order for contextual browser testing to work correctly. It also disables the frame-ancestors directive. This is done only in the environments that Tidewave is loadead (development by default).
Configuration
You may configure the Tidewave plug using the following syntax:
The following options are available:
-
:allow_remote_access- Tidewave only allows requests from localhost by default, even if your server listens on other interfaces, for security purposes. Read our security guidelines for more information and when to allow remote access. Use this option with extreme care and, once enabled, ensure you have an authentication proxy in front of your app. -
:allowed_origins- a list of values matched against theOriginandHostheaders to prevent cross origin and DNS rebinding attacks. Each value must be a string of shape[scheme:]//host[:port], where both scheme and port are optional. The host may also start with "*". Only the host is compared against theHostheader. IP addresses,localhost, and*.localhostare always allowed as hosts. When not set, defaults to the host of your Phoenix endpoint URL. Example:["//localhost:8000", "//*.test"] -
:inspect_opts- custom options passed toKernel.inspect/2when formatting some tool results. Defaults to:[charlists: :as_lists, limit: 50, pretty: true] -
:team- set your Tidewave Team configuration, such asteam: [id: "my-company"] -
:toolbar- controls whether the Tidewave toolbar is injected into your HTML pages. Defaults totrue -
tmp_dir- temporary directory Tidewave uses for screenshots and recordings. It must be a relative directory to the current application root. Defaults totmp, storing files undertmp/tidewave/screenshotsandtmp/tidewave/recordings
License
Copyright (c) 2025 Dashbit
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
來源:README.md,提交 64056ef
工具
0版本歷史
1- v0.8.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分