This is for developing your app’s code on your own machine. For the in-browser builder that writes
and deploys code through conversation, see Starcat Developer. You’ll need a
local checkout of your repo first — see GitHub Access.
How it works
Your local Claude Code connects to your organization’s MCP server on the Stardeck platform, the same connection described in AI Integrations. The platform authenticates you, checks what the connection is allowed to do, and exposes the tools that role can use. A few things worth knowing up front:- One connection per organization — the connection reaches every app in the organization you pick when you authorize. Tools that act on an app take the app’s slug (or id) on each call, so you tell Claude which app you mean, for example “list the open tasks for the storefront app”.
- No secret in your files — you authorize once in your browser. The server URL,
https://www.stardeck.ai/api/mcp, is the same for everyone, and Claude Code keeps the token out of your config. - You pick the role — when you authorize, you choose an organization role for the connection to act as (from the roles you’re allowed to assign yourself) and read only or read & write access. Tools follow that role, not your own role on the app. See Tools & Permissions.
- Managed from your org settings — change the role or access level, or revoke the connection, from Settings → AI Integrations in your organization dashboard.
Before you begin
You’ll need:- A local checkout of your app’s repository — see GitHub Access
- Claude Code installed on your machine — see Claude Code
- Membership in the organization that owns the app, and an organization role with the agent permissions you need — see Members & Roles
Installing dependencies
Once you have a local checkout, you’ll runnpm install to build and run the app. Your app depends on Stardeck’s SDK packages — scoped @stardeck-customer-apps/* (auth, email, payments, data store, and more). These are published to GitHub Packages, and installing them needs a token.
To install:
-
Create a GitHub personal access token with the
read:packagesscope. -
Add it to your
~/.npmrc(keeps the token out of your repo):~/.npmrc -
Run
npm install.
One-command setup
From the root of your checkout, afternpm install, run:
setup script yet, npx @stardeckai/cli setup does the same thing.
This does everything on this page and on Run Your App Locally in one go:
- Signs you in to Stardeck in your browser, if you aren’t signed in already.
- Shows the coding agents you can connect. The ones installed on your machine are marked detected and already ticked. Use the arrow keys and space to change the selection, then press enter.
- Adds the
stardeckMCP server to each agent you picked, keeping any other servers you already have. - Pulls your app’s environment into
apps/web/.env.local, the same asstardeck env pull. - Tells you how to finish signing in to the MCP server in each agent, such as running
/mcpin Claude Code orcodex mcp login stardeckin Codex.
Files written inside your checkout are already in your app’s
.gitignore. The other agents get the server in your user config, which is fine because the server URL is the same for every app.
To skip the picker, name the agents yourself: --agents claude-code,codex. Setup also takes every env pull option, such as --project and --port. You can run it again at any time; agents that are already set up are left as they are.
The rest of this page explains how to set things up by hand.
Set it up
1
Add the server to Claude Code
One connection covers every app in your organization, so add it once for your user:To limit it to one checkout instead, save this as
.mcp.json at the root of that checkout. Stardeck apps keep .mcp.json in .gitignore, so it stays on your machine:.mcp.json
2
Open Claude Code and authorize
Open Claude Code in your checkout, run
/mcp, select stardeck, and choose Authenticate (a project .mcp.json asks you to approve the server first). Your browser opens. Sign in, pick the organization that owns the app, pick the role the connection should act as, and choose Read only or Read & write. Pick the least permissive role that covers what you need. Connect Your AI Tool covers the consent screen in detail.3
Verify the connection
Ask Claude something like “list the tasks for the storefront app”, using your app’s name. Claude passes the app’s slug to the task tool, and if you get that app’s real tasks back, you’re connected.
Working alongside the Stardeck agent
Keep in mind how the in-product agent treats git: Stardeck agents commit and push their work directly to themain branch. There’s no pull request step — when the agent finishes a change, it lands on main, and that’s what the project’s sandbox builds and runs.
That has two implications for local work:
mainis shared and live. Pull before you start so you’re not building on a stale tree, and expect the agent (or a teammate) to push tomainwhile you work.- The sandbox doesn’t auto-pull your pushes. Your local edits and branches are invisible to the Stardeck sandbox until they reach
main— and even after you push, the sandbox stays on its current commit until you load the new commit into it manually from the dashboard’s git history tab.
Connect other MCP clients
This guide uses Claude Code, but the server is a standard OAuth-based MCP server over Streamable HTTP, and every client uses the same URL:https://www.stardeck.ai/api/mcp. Connect Your AI Tool
has setup steps for more clients.
Codex CLI
Add the server to Codex, then start the browser authorization flow:codex mcp list or type /mcp in Codex to verify the connection. The
server is stored in ~/.codex/config.toml; use a project-scoped
.codex/config.toml if you want the connection limited to that checkout.
ChatGPT desktop app
Open Settings → MCP servers → Add server, choose Streamable HTTP, and pastehttps://www.stardeck.ai/api/mcp. Save, restart ChatGPT if prompted, and
select Authenticate for Stardeck. Complete the browser sign-in before asking
ChatGPT to list an app’s tasks.
Cursor, Windsurf, Cline, and others
Use the client’s Streamable HTTP MCP configuration with this URL and complete the same browser authorization:.cursor/mcp.json:
Switching between apps
The URL is the same for every app, so one connection covers every app in the organization you authorized. Name the app in your request and Claude passes its slug to the tool. To save repeating it, add a line to the repo’sCLAUDE.md such as “This repo is the Stardeck app storefront.” If Claude isn’t sure of the slug, ask it to list your organization’s apps.
The connection acts in one organization. If you belong to several and need an app in a different one, authorize again and pick that organization. In Claude Code, open /mcp, select the stardeck server, clear its authentication, and authorize again.
Troubleshooting
No tools show up
- Claude Code hasn’t loaded the server yet — run
claude mcp listto check it is added (or that.mcp.jsonis at the repo root), restart Claude Code, then approve the server when prompted. - You haven’t finished the browser authorization — re-open Claude Code and complete the sign-in.
- The role you picked holds none of the agent permissions — change the connection’s role in Settings → AI Integrations. The change applies on the next tool call.
A tool you expect is missing
Only a few common tools appear directly in Claude’s tool list. The rest are in Stardeck’s tool catalog, which Claude searches withsearch_stardeck_tools and runs with execute_stardeck_read_tool or execute_stardeck_write_tool. Ask Claude to search the Stardeck catalog for what you need. If the search doesn’t find it, the connection’s role or access level doesn’t allow it — see Tools & Permissions.
Claude says the app wasn’t found
The app belongs to a different organization than the one you authorized, or the slug is wrong. Ask Claude to list your organization’s apps and use the slug it returns.npm install fails with 401 Unauthorized
The @stardeck-customer-apps/* packages live on GitHub Packages, which requires a token even though the packages are public. Add a GitHub personal access token with read:packages to your ~/.npmrc — see Installing dependencies.
Authorization fails or returns “unauthorized”
- You must be a member of the organization that owns the app, and you must pick that organization during authorization.
- The role list only shows roles you’re allowed to assign yourself. If the role you need isn’t there, ask an organization admin.
- If your session expired, re-run the authorization flow from Claude Code.
Claude can’t write to the data store
The connection was authorized as Read only, its role lacks data-store write access, or the role has no grant on that store. Data-store writes needagent:data-store:write on the role and Read & write access — see Tools & Permissions.
Next steps
Run Your App Locally
The other half — boot your app on localhost against your live sandbox
Tools & Permissions
What Claude can do on your app, and how the connection’s role controls it
Connect Your AI Tool
The consent screen, other clients, and managing connections
Members & Roles
Create and configure the roles that control your access
GitHub Access
Get a local checkout of your app’s repository
Cross-App Communication
How your apps call each other’s endpoints