Connect io.github.Reachpad/reachpad-mcp and your agent gets 25 tools, among them create_app, get_app_logs, list_app_shares. It answers at https://reachpad.dev/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 20 October 2026, succeeded.
Coding agents build full-stack apps in persistent workspaces and share them by link.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
create_app | Publish new files as an app and get its URL back. Version 1 goes live at once, so show the person the content and the destination before calling this. Access defaults to org_link, which lets anyone signed in to the same organization open th Inputs: name, files, slug, type, message, manifest |
get_app_logs | Read recent log lines from the live version of a function app. An app that serves files has no process and answers that it has no logs. Function logs are not captured yet either, and the answer says so: until they are, have the function cat Inputs: app_id, since, limit |
list_app_shares | List the people an app is shared with, their roles, and whether the grant has attached to an account yet. The owner and editors can read this list. Inputs: app_id |
list_app_versions | List an app's versions, newest first. Versions are immutable and numbered from 1. Earlier versions open for the app's editors; the live link follows the app's access setting. Pass the next_cursor from a previous call to get the next page. Inputs: app_id, cursor, limit |
list_secrets | List the organization's secrets: each name, who set it, when, and the apps whose versions bind it. Names only. No tool anywhere returns a secret value. |
ls | List what is directly inside one folder: its subfolders and the apps filed in it. Omit folder_id for the top level. Each folder carries the updated_at that mv needs. Inputs: folder_id, limit |
mkdir | Create a folder, at the top level or inside another one. Inputs: name, parent_id |
mv | Move an app into a folder, or move a folder under another folder. Name exactly one of app_id or folder_id as the thing being moved, and to_folder_id as the destination, or null for the top level. Moving a folder also needs base_updated_at, Inputs: app_id, folder_id, to_folder_id, base_updated_at |
publish_app_version | Make one version of an app live by its number. This is how a version staged with publish false goes on the link, and how an app is rolled back: name an older number and that version is what the link serves again. Nothing is rebuilt, the poi Inputs: app_id, number |
query_app_db | Run one SQL statement against a function app's own database, to read rows and to fix data. Not for schema: a table or a column belongs in the version's migrations/NNNN_name.sql, and a statement that changes the schema is refused. Owners and Inputs: app_id, sql, params |
read_app | Read one app before update_app: its name, type, access level and publishing mode, plus base_version_id and its files, which both describe the version the next edit builds on. Each text file carries its content, so this is how you see what a Inputs: app_id |
read_app_file | Read one file out of an app as text, at most 256 KB. Use it for a file that read_app left out with content_omitted: "answer budget", or to fetch a single file without the rest of the app. A file that is not text, and a text file over that s Inputs: app_id, path, number |
read_app_preview | Look at the picture of what an app's link serves right now, as an image. Use it for an app whose files you cannot read: a function app's module stays with the people who develop it, so this is how you see what the app actually shows. It is Inputs: app_id |
read_app_version | Read one version by its number, with its files and each text file's content. Use it to see what an earlier publish contained, and to copy a file back out of a version you want to return to. Earlier versions open for the app's editors; the l Inputs: app_id, number |
remove_secret | Remove one organization secret and delete it from every published version that binds it. A version the deletion did not reach keeps the name in the list with that version in failed, and running this again retries exactly those. Inputs: name |
revoke_app_share | Remove one share by its id, from list_app_shares. The app itself is untouched. The owner or an editor may use this when editor-managed sharing is enabled. Inputs: app_id, share_id |
rmdir | Delete an empty folder. This refuses while the folder still holds apps or subfolders, and it never deletes an app. Move the contents out first. Inputs: folder_id |
search_apps | Find apps in the caller's organization by text. This matches substrings of the name and the slug, and whole words on the live version's page, not meaning: search for a word that appears in the title or on the page rather than describing the Inputs: q, type, created_by, updated_by, limit |
set_app_access | Change who can open an app: restricted (only the owner and named people), org_link (anyone signed in to the organization), or public_link (anyone with the URL). A password and an expiry apply to a public link only. Owner only. Inputs: app_id, level, password, clear_password, expires_at, clear_expiry |
set_secret | Set one organization secret, so a function can bind it by name in its manifest secrets list. Any member of the organization. Setting a name that already exists replaces the value and rotates it onto every published version that binds it. An Inputs: name, value |
share_app | Give one email address access to an app as a viewer or an editor. An address without an account gets a grant that starts working the first time they sign in. The owner or an editor may use this when the owner has enabled editor-managed shar Inputs: app_id, email, role |
trash_app | Move an app to the trash. Its link stops opening at once. Owner only. The app and its versions are kept and can be restored from Trash at reachpad.dev/apps/trash, which is also the only place an app is deleted for good. Inputs: app_id |
tree | The whole folder tree for the organization, nested, with the number of apps filed in each folder and the count sitting at the top level. Each node carries the updated_at that mv needs. |
update_app | Publish a new version of an existing app. Read the app first and pass the base_version_id read_app returns: it names the version this edit builds on, and a base that has moved is refused rather than overwritten. By default the new version r Inputs: app_id, files, base_version_id, message, manifest, mode |
whoami | Report the account and the organization this connection is signed in as: user id, email and name, plus org id and name, and `orgs`, every organization the account is in with the current one marked. Takes no arguments. Every app is created i |
Every block below points at https://reachpad.dev/mcp. Pick your client and copy.
claude mcp add --transport http io-github-reachpad-reachpad-mcp https://reachpad.dev/mcp
{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://reachpad.dev/mcp"]
}
}
}{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"url": "https://reachpad.dev/mcp"
}
}
}{
"servers": {
"io-github-reachpad-reachpad-mcp": {
"type": "http",
"url": "https://reachpad.dev/mcp"
}
}
}{
"context_servers": {
"io-github-reachpad-reachpad-mcp": {
"url": "https://reachpad.dev/mcp"
}
}
}{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"serverUrl": "https://reachpad.dev/mcp"
}
}
}{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"url": "https://reachpad.dev/mcp"
}
}
}name: io.github.Reachpad/reachpad-mcp
version: 0.0.1
schema: v1
mcpServers:
- name: io.github.Reachpad/reachpad-mcp
type: streamable-http
url: https://reachpad.dev/mcp{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"httpUrl": "https://reachpad.dev/mcp"
}
}
}{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"type": "http",
"url": "https://reachpad.dev/mcp"
}
}
}{
"mcpServers": {
"io-github-reachpad-reachpad-mcp": {
"url": "https://reachpad.dev/mcp"
}
}
}goose://extension?url=https%3A%2F%2Freachpad.dev%2Fmcp&type=streamable_http&id=io-github-reachpad-reachpad-mcp&name=io.github.Reachpad/reachpad-mcp
It answered our last check on 20 October 2026 in 901 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
25, as returned by the server's own tools/list on 12 September 2026: create_app, get_app_logs, list_app_shares, list_app_versions, list_secrets, ls, mkdir, mv, and 17 more.
It answered our last check on 20 October 2026 in 901 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://reachpad.dev/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.reachpad. Endpoint host: reachpad.dev. ARD identifier: urn:air:io.github.reachpad:mcp:reachpad-mcp.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.