@floopfloop/mcp
The @floopfloop/mcp server integrates FloopFloop's AI-powered web project platform with LLM hosts, enabling agents to create, monitor, refine, and manage web projects through natural-language instructions.
Project Lifecycle: List all projects (
list_projects), fetch by ID or subdomain (get_project), create from a prompt (create_project), refine with follow-up instructions (refine_project), check build/deploy status (project_status), block until live (wait_for_live), cancel a build (cancel_project), reactivate a cancelled project (reactivate_project), and view message timelines (get_conversations).Subdomain Management: Check slug availability (
check_subdomain) or generate a friendly slug from a prompt (suggest_subdomain).Secrets Management: List secret key names (
list_secrets), create or overwrite a secret (set_secret), or delete a secret (remove_secret). Values are one-way encrypted and never returned.File Uploads: Read a local file, upload it to S3, and get an attachment reference for use in refinements (
upload_from_path).Library Projects: Browse the public project library (
list_library_projects) and clone templates into your account (clone_library_project).Account & Billing: View user info (
whoami), current subscription and credits (current_subscription), usage summary (usage_summary), and manage API keys — list, create (secret returned once), or revoke (list_api_keys,create_api_key,remove_api_key).Safe by Design: Destructive actions (cancel, set/remove secrets, revoke keys) are marked so hosts can prompt for user confirmation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@floopfloop/mcpcreate a landing page for a vegan bakery called Green Bite"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@floopfloop/mcp
Model Context Protocol server for the FloopFloop API — lets Claude Desktop, Cursor, Zed, and any other MCP-aware LLM host build, poll, and refine FloopFloop projects on the user's behalf.
Wraps the official @floopfloop/sdk and exposes a curated subset of its surface as MCP tools.
Tools
Tool | What it does |
| List every project you have access to |
| Fetch a project by id or subdomain |
| Cheap status snapshot — safe to poll |
| Kick off a new build from a natural-language prompt |
| Send a refinement message to an existing project |
| Block until the project reaches a terminal state |
| Stop a queued or in-progress build |
| Resume a cancelled / archived project |
| Read a project's message timeline (prompts + replies + deploy markers) |
| Is a given slug available? |
| Generate a friendly slug from a prompt |
| List secret keys on a project (names only) |
| Create/overwrite a project secret |
| Delete a project secret |
| Browse the public project library |
| Duplicate a library project into the user's account |
| Plan limits + current-period credit / build / storage usage |
| List the user's API keys (never returns the raw secret) |
| Mint a new API key — raw secret returned ONCE |
| Revoke an API key by id or name |
| Read a local file, presign + upload to S3, return an attachment ref |
| Show the authenticated user |
| Plan tier + credit balance (price, billing period, current/rolled-over credits) |
Related MCP server: mcp-minecraft
Configuration
Grab an API key: floop keys create mcp-host (via the floop CLI) or the dashboard → Account → API Keys. Business plan required to mint new keys.
The server reads FLOOP_API_KEY from the environment. Optionally override FLOOP_API_URL to point at staging.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %AppData%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"floopfloop": {
"command": "npx",
"args": ["-y", "@floopfloop/mcp"],
"env": { "FLOOP_API_KEY": "flp_..." }
}
}
}Restart Claude Desktop; the tools show up under the 🔌 icon.
Cursor
~/.cursor/mcp.json (or Cursor Settings → Tools & Integrations → MCP):
{
"mcpServers": {
"floopfloop": {
"command": "npx",
"args": ["-y", "@floopfloop/mcp"],
"env": { "FLOOP_API_KEY": "flp_..." }
}
}
}Generic MCP host
Any host that speaks the MCP stdio transport can run the server:
FLOOP_API_KEY=flp_... npx -y @floopfloop/mcpInstall
The package is pulled in automatically via npx -y @floopfloop/mcp in the config snippets above. If you prefer a pinned install:
npm install -g @floopfloop/mcp
which floop-mcpUsage notes
create_projectstarts a build right away. Follow up withwait_for_live(blocks) orproject_status(poll) to know when it's up.wait_for_livedefaults to a 10-minute ceiling (bounded bytimeoutMs, capped at 30 min). Most builds finish in under two minutes.upload_from_path→refine_projectis the canonical attachment flow: callupload_from_pathwith a local file, get back anUploadedAttachment({key, fileName, fileType, fileSize}), then pass it asattachments: [<that object>]onrefine_project. The LLM host's process needs read access to the file path; max 5 MB.refine_projectcodeEditOnly: trueruns a 3-step in-place patch instead of a full 6-step rebuild and charges roughly half the credits — use it for copy edits, colour swaps, or typo fixes on a project that's already live. The backend won't promote a code-edit to a full refinement automatically, so prefer plainrefine_projectwhen the change actually needs redesign.cancel_project→reactivate_projectis the abort/redo pattern.cancel_projectisdestructiveHint: true; hosts should confirm before calling it.reactivate_projecttriggers a fresh build at the project's most recent prompt.set_secret/remove_secretare markeddestructiveHint: true— hosts may ask the user to confirm before they run.list_secretsonly returns names, never values. Secret values cannot be retrieved once written; rotate them by re-setting.On failure, tools return an MCP
isErrorcontent result rather than tearing down the session, so the host displays the error to the user.
Development
git clone https://github.com/FloopFloopAI/floop-mcp.git
cd floop-mcp
npm install
npm run typecheck
npm run build
FLOOP_API_KEY=flp_... node dist/index.jsTo smoke-test the stdio handshake without an LLM host:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| FLOOP_API_KEY=flp_dummy node dist/index.js 2>/dev/nullReleasing
.github/workflows/release.yml publishes to npm with provenance whenever
a tag matching mcp-v* is pushed. One-time setup before the first
release:
Create an automation npm token on the
@floopfloopscope (publishes bypass 2FA by design when tokens are marked automation).Add it as the repo secret
NPM_TOKEN:gh secret set NPM_TOKEN --repo FloopFloopAI/floop-mcp # paste token when prompted — do NOT use --body, which can leak it to # shell history.Tag + push:
npm version 0.1.0-alpha.1 --no-git-tag-version # if needed git tag mcp-v$(node -p "require('./package.json').version") git push --follow-tags
The workflow typechecks, builds, runs the stdio smoke test, verifies the
tag matches package.json, then publishes and cuts a GitHub Release
(prerelease, auto-generated notes).
License
MIT
Available Tools
12 toolscheck_subdomainCheck subdomain availabilityARead-onlyIdempotent
Check whether a given subdomain slug is free.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already explicitly mark as readOnly (readOnlyHint: true) and idempotent (idempotentHint: true). Description adds confirmation of read-only check behavior ('Check whether'). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple input (1 string), description is adequate for a basic check. However, lacks details on return format (boolean vs status) or error conditions, which with simple tools may be acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage for the 'slug' parameter, but the description adds meaning by stating it checks availability, implying 'slug' is the subdomain to check. No additional details on format or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks subdomain availability with 'Check whether a given subdomain slug is free.' This is specific enough, but doesn't differentiate from sibling 'suggest_subdomain' which might also check availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs alternative tools like 'suggest_subdomain'. No context on prerequisites or typical workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectCreate a projectA
Create a new FloopFloop project from a natural-language prompt. Build kicks off immediately. Call wait_for_live to block until the site is up, or poll project_status.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural-language brief for the project | |
| name | No | ||
| subdomain | No | Override the auto-suggested subdomain slug | |
| botType | No | Default is site | |
| isAuthProtected | No | ||
| teamId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false and idempotentHint=false. The description adds important behavioral context: 'Build kicks off immediately', implying the operation is not instant and has side effects. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences. No waste; every sentence provides critical information: what it does, the action it triggers, and recommended follow-ups.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (6 params, 1 required) and no output schema, the description covers the core behavior (project creation, immediate build) and next steps. It omits details on return value, but the sibling tool project_status suggests the project can be polled. Slight gap for new users on output, but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, so some parameters (e.g., prompt, subdomain, botType) have descriptions, but name and teamId are documented only by name. The description does not add meaning beyond what the schema provides, but it does mention that the project is created from a 'natural-language prompt' which aligns with the prompt parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'a new FloopFloop project', and specifies the input is a 'natural-language prompt'. This differentiates it from siblings like refined_project (which refines) and project_status (which checks status), establishing a distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use it ('Create a new FloopFloop project from a natural-language prompt') and suggests follow-up tools: 'Call wait_for_live to block until the site is up, or poll project_status.' It does not explicitly state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectGet a projectARead-onlyIdempotent
Fetch a single project by id or subdomain. Returns the project's url, status, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id (uuid) or subdomain | |
| teamId | No | Team id (uuid) if the project lives in a team |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true, making it clear this is a safe, read-only operation. The description adds the specific output fields, which is helpful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and front-loaded with the core action. Every sentence adds value: first sentence states what it does, second specifies return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the good annotations, complete schema, and no output schema, the description is sufficient. It could optionally mention pagination or performance, but not necessary for such a straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description doesn't need to add much. It mentions the ref parameter (id or subdomain) but doesn't elaborate on the teamId parameter. Baseline 3 is appropriate since schema already documents both parameters clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool fetches a single project by id or subdomain, and lists the returned fields (url, status, metadata). This is a specific verb-resource combination that distinguishes it from siblings like list_projects or check_subdomain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need a known project by id/subdomain) but doesn't explicitly compare to alternatives like list_projects or check_subdomain. However, the sibling list provides context, and the tool's purpose is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsARead-onlyIdempotent
List all FloopFloop projects the authenticated user has access to. Optionally scope to a team.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | No | Team id (uuid) to scope to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, and the description adds that it returns projects the user has access to, which is consistent. No contradictions. However, it does not mention pagination or rate limits, which would be valuable for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the purpose and includes the optional scope. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema (1 optional param), no output schema, and safe annotations (readOnly, idempotent), the description is sufficiently complete. It could mention that the result is a list, but the name and purpose imply that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so the description need not detail the parameter. The optional team scoping is mentioned but adds no semantics beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'all FloopFloop projects the authenticated user has access to' with an optional team scope, matching the name and differentiating from siblings like get_project (single project) or create_project (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (list projects for the user, optionally scoped to a team), but does not explicitly state when not to use or compare to alternatives like get_project or whoami.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_secretsList a project's secretsARead-onlyIdempotent
List secret keys for a project. Values are never returned — only names, because FloopFloop stores secrets one-way-encrypted.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id or subdomain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description only needs to add beyond that. It adds value by revealing that secrets are stored one-way-encrypted and thus values are never returned, which is not captured in annotations. This is useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, behavior, and limitation. Front-loaded with key action and scope. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and clear annotations, the description covers purpose, behavior, and limitation. No output schema exists, but the description explains what is returned (names only), which is sufficient. Could optionally mention pagination or ordering, but not required for this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with a single required parameter 'ref' described as 'Project id or subdomain'. The description does not add any additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists secret keys for a project, explicitly distinguishing that values are never returned. This differentiates it from sibling tools like set_secret or remove_secret, and clarifies it's a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use (to list secret names) and notes that values are not returned, which helps set expectations. However, it does not explicitly say when not to use it or compare with siblings like list_projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_statusProject build statusARead-onlyIdempotent
Fetch the current build/deploy status for a project. Cheap — safe to call in a polling loop.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id (uuid) or subdomain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already readOnlyHint and idempotentHint, which tell the agent it is a safe read. The description adds 'Cheap — safe to call in a polling loop', which provides helpful behavioral context about cost and non-destructiveness beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and usage guidance. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, no output schema, and clear annotations, the description covers the essential behavioral and usage aspects. Could mention the return format (e.g., JSON with status fields) for completeness, but current description is nearly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the one parameter 'ref' is described as 'Project id (uuid) or subdomain'). The description does not add further meaning to the parameter, which is acceptable since schema fully documents it. Score baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb ('Fetch'), the resource ('current build/deploy status'), and the scope ('project'). It distinguishes itself from sibling tools like 'get_project' (which likely returns broader project details) and 'check_subdomain' (a different check).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes cheapness and safety for polling loops, which preemptively guides when to use this tool (frequent calls) vs. more expensive or write operations (siblings like 'refine_project', 'set_secret' are not suitable for polling).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refine_projectRefine a project with a new instructionA
Send a refinement message to an existing project. Triggers a follow-up build unless the backend decides it's a code-only edit.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id or subdomain | |
| message | Yes | What to change | |
| wait | No | If true, block until the follow-up build reaches live/failed/cancelled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals key behavioral traits beyond annotations: it 'triggers a follow-up build' and notes the backend may decide it's 'code-only edit', implying conditional behavior. However, it does not clarify whether the tool is idempotent or what happens if called repeatedly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy, but slightly more could be packed into the first sentence for quicker understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that output schema and annotations are limited, the description covers key behavioral aspects (triggers build, conditional code-only edit). It could mention what happens if wait is true/false more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little extra meaning. It mentions 'refinement message' linking to the 'message' parameter context, but otherwise the schema already explains the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'send[s] a refinement message' to a project, with a specific verb and resource, distinguishing it from sibling tools that create or get projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the tool triggers a build, but does not explicitly state when to use this tool over others (e.g., create_project), nor does it provide alternative guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_secretRemove a project secretADestructiveIdempotent
Delete a secret from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id or subdomain | |
| name | Yes | Secret key to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint and idempotentHint. The description adds no further behavioral detail, but annotations are sufficient. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence. Every word earns its place. Perfect length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive action with good schema and annotations, description is adequate. Could mention reversibility or authorization, but no output schema required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (ref, name). The description does not add extra context beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a secret from a project.' uses a strong verb ('Delete') and clearly identifies the resource (secret from a project). It distinguishes from siblings like set_secret and list_secrets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to remove a secret, but provides no guidance on when not to use it or how it differs from other deletion or mutation tools. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_secretSet a project secretBDestructiveIdempotent
Create or overwrite an environment secret on a project.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id or subdomain | |
| name | Yes | Secret key, e.g. STRIPE_SECRET_KEY | |
| value | Yes | Secret value. Treat as sensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint (overwriting) and idempotentHint (safe to retry), which the description echoes by 'create or overwrite'. This adds value beyond annotations by clarifying the overwrite behavior, but does not detail what happens to existing or non-existing secrets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, well-front-loaded with verb and object. Could arguably be more concise, but is clear and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with 3 params and no output schema, the description covers the core action. However, lacks information about permissions, side effects (e.g., triggering rebuilds), or behavior when ref is invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a description, but the description adds no additional meaning beyond the schema. For example, 'ref' is described as 'Project id or subdomain' in schema; description does not elaborate on format or validation, nor explain dependencies between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates or overwrites an environment secret on a project, with specific verb-resource combination. However, it does not explicitly distinguish from the sibling 'remove_secret' tool, which is obvious given the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for setting secrets but provides no guidance on when to use this vs. alternatives like 'list_secrets' or 'remove_secret'. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_subdomainSuggest a subdomain from a promptBRead-only
Ask the backend to generate a friendly subdomain slug based on a natural-language prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, but description does not clarify that it's a read-only operation (it calls it a 'generation', which could imply state change). No details on idempotency (annotations indicate idempotentHint=false, but behavior not explained) or whether slug is guaranteed unique.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded with action verb. No wasted words, but could benefit from brief additional usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simplicity of tool (one param, no output schema), description covers basic purpose and input. However, missing details on output format (what does the slug look like?), uniqueness guarantee, and integration with check_subdomain make it slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter, schema coverage is 0%, but description adds meaning: 'prompt' is a natural-language description for generating a slug. Clearly states input is a natural-language prompt, which schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a friendly subdomain slug from a natural-language prompt, using verbs 'generate' and 'suggest'. It distinguishes from sibling 'check_subdomain' by focusing on generation rather than validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing a subdomain suggestion, but lacks explicit guidance on when to use vs alternatives like manual naming or check_subdomain. No mention of prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_liveWait until a project is liveARead-onlyIdempotent
Block (polling every 2 s) until the project reaches a terminal state. Returns the final Project on success, an error result on build-failed or build-cancelled.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Project id or subdomain | |
| timeoutMs | No | Max wait in ms. Defaults to 10 minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: polling interval (2s), terminal states, and return conditions (success vs error). Annotations already declare readOnlyHint and idempotentHint, so additional behavioral context is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, both essential, with key details front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the core behavior. It notes that timeout defaults to 10 minutes, which is useful. However, it could mention what happens on timeout (returns error presumably) for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions are provided in schema. The description adds no further parameter specifics beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Wait' and target resource 'project', and mentions the polling behavior and terminal states. However, it could more precisely differentiate from sibling tool 'project_status' which also deals with project states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when waiting for a project to finish, but does not explicitly state when to use this versus alternatives like 'project_status' or how it differs from checking manually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiShow the authenticated userARead-onlyIdempotent
Return the current user's id, email, and plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true, so the description does not need to reiterate safety. However, the description adds value by specifying exactly which fields are returned (id, email, plan), which is not evident from the annotations alone. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clear sentence that efficiently communicates the tool's output. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no parameters and no output schema, the description sufficiently explains what the tool returns. The lack of output schema means the description partially compensates by listing return fields. However, it does not mention any additional context like rate limits or authentication requirements, but the annotations handle safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage, so the description does not need to explain parameters. The description's mention of return fields adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the current user's id, email, and plan. It is specific about what the tool outputs, distinguishing it as a self-inspection tool. However, it does not explicitly differentiate from siblings like check_subdomain, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing authenticated user details, but it does not provide explicit guidance on when to use this tool vs alternatives or when not to use it. Context signals and sibling tools suggest no overlap, so the usage is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource (project, secret, subdomain) with clear actions. No overlap: check_subdomain vs suggest_subdomain are separate operations, and wait_for_live complements create_project without ambiguity.
Tools mostly follow verb_noun pattern (e.g., create_project, remove_secret, list_projects). whoami is a mild deviation but is a common convention. Minor inconsistency: project_status is noun-based while others are verb-based.
12 tools is well-scoped for a project management MCP. Each tool covers a necessary operation without bloat, from project CRUD to secret and subdomain management.
Covers core project lifecycle (create, get, list, refine, status) and secret management (list, set, remove). Missing update_project (rename) or delete_project, but these might be intentional gaps for safety.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for Flux AI image generation
MCP server for AI dialogue using various LLM models via AceDataCloud
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Related MCP Servers
- MIT
- AlicenseBqualityDmaintenanceA Minecraft MCP Server powered by Mineflayer API. It allows to control a Minecraft character in real-time, allowing AI assistants to build structures, explore the world, and interact with the game environment through natural language instruction2237704Apache 2.0

Globalpingofficial
FlicenseNot gradedqualityBmaintenanceRemote MCP server that gives LLMs access to run network commands63- AlicenseNot gradedqualityDmaintenanceA local MCP server that runs Llama models entirely on your machine. No API keys, no cloud costs, 100% private and offline-capable.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FloopFloopAI/floop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server