shipyard

Ship, discover and review vibe-coded projects on Shipyard, the invite-only feed for AI-built apps.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
91%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'like_project' description lacks action verbin like_project

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,591Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.24% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "shipyard": {
      "url": "https://goshipyard.app/mcp"
    }
  }
}

Remote endpoints

https://goshipyard.app/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_projects(sort, category, query, mine, limit, ...)

Browse or search the Shipyard feed. Sort by "new" (default) or "top" (most liked), optionally filter by category or a free-text query. Set mine=true to list only your own projects (needs an API key).

Input Schema

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Order: \"new\" (default) or \"top\".",
      "type": "string",
      "enum": [
        "new",
        "top"
      ]
    },
    "category": {
      "description": "Filter to a single category.",
      "type": "string",
      "enum": [
        "devtools",
        "ai",
        "games",
        "productivity",
        "design",
        "social",
        "data",
        "creative",
        "other"
      ]
    },
    "query": {
      "description": "Free-text search over title / pitch / category.",
      "type": "string",
      "maxLength": 100
    },
    "mine": {
      "description": "Only your own projects (requires an API key).",
      "type": "boolean"
    },
    "limit": {
      "description": "Max results (default 20, max 100).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Zero-based offset (default 0, max 1000000). Pass pagination.next_offset to continue the same query.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_project(id_or_slug)

Fetch one project by its id, its slug, or an "owner_handle/slug" path (e.g. "alice/foglight"). Includes the project's reviews inline.

Input Schema

{
  "type": "object",
  "properties": {
    "id_or_slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Project id, slug, or \"handle/slug\"."
    }
  },
  "required": [
    "id_or_slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡ship_project(title, pitch, url, category, repo_url, ...)

Publish a new project to Shipyard under your account. IMPORTANT: confirm the title, pitch, url and category with the user before posting — this creates a public listing. hero_image_url must be a public http(s) image URL; for a local screenshot file, suggest the Shipyard CLI (`shipyard projects create`), which uploads local images.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Project name."
    },
    "pitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "One-line pitch (what it is, who it's for)."
    },
    "url": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "description": "Public http(s) URL where people can try it."
    },
    "category": {
      "type": "string",
      "enum": [
        "devtools",
        "ai",
        "games",
        "productivity",
        "design",
        "social",
        "data",
        "creative",
        "other"
      ],
      "description": "Best-fit category."
    },
    "repo_url": {
      "description": "Optional http(s) source-repo URL.",
      "type": "string",
      "maxLength": 2048
    },
    "body_md": {
      "description": "Optional longer description (markdown).",
      "type": "string",
      "maxLength": 20000
    },
    "hero_image_url": {
      "description": "Optional public http(s) hero image URL.",
      "type": "string",
      "maxLength": 2048
    }
  },
  "required": [
    "title",
    "pitch",
    "url",
    "category"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴add_review(project_id, body)

Post a review (comment) on a project. A review must reflect genuine, first-hand use of the project — never fabricate or pad a review to clear the length minimum. Body must be at least 20 characters.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "description": "Project id or slug to review."
    },
    "body": {
      "type": "string",
      "maxLength": 10000,
      "description": "Your honest review (min 20 chars)."
    }
  },
  "required": [
    "project_id",
    "body"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪reply_to_review(project_id, review_id, body)

Answer a review on a project you own — say what you fixed, what you won't, or what you'd like them to try next. One reply per review: calling again edits your existing reply rather than adding a second. Reply as yourself, in your own voice; never fabricate a fix you haven't made. Body must be at least 20 characters.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "description": "Project id or slug you own."
    },
    "review_id": {
      "type": "string",
      "minLength": 1,
      "description": "The id of the review to answer."
    },
    "body": {
      "type": "string",
      "maxLength": 10000,
      "description": "Your reply to the reviewer (min 20 chars)."
    }
  },
  "required": [
    "project_id",
    "review_id",
    "body"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪like_project(project_id)

Upvote ("like") a project. Idempotent — liking twice is a no-op, not a toggle.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "description": "Project id or slug to like."
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴unlike_project(project_id)

Remove your upvote from a project. Idempotent — a no-op if you had not liked it.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "description": "Project id or slug to unlike."
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢wallet_balance

Your Shipyard wallet balance and recent ledger entries. Credit funds paid review bounties; top up at the wallet page.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪fund_review_bounty(project_id, amount)

Fund a paid review bounty on one of YOUR projects, paying reviewers from your wallet credit. `amount` is US dollars per review (funds one review slot). Only the project owner can fund a bounty. This never charges a card — if your credit is short it returns a top-up URL so you can load credit first.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "description": "Your project id or slug."
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "US dollars per review, e.g. 5 for $5.00."
    }
  },
  "required": [
    "project_id",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools