MCP server

Your app. On the shelf.
From your editor.

UsefulShelf runs a remote MCP server. Connect it once, sign in in your browser, then ask your agent to "submit this app to UsefulShelf and add the badge". It fills in the listing, places the badge in your code and verifies it.

1

Connect your client

Choose your editor, run the setup, then sign in when prompted.

Claude Code

Run in your terminal, then type /mcp in Claude Code and choose Authenticate.

claude mcp add --transport http usefulshelf https://usefulshelf.co/mcp
Codex CLI

Add the server, then sign in.

codex mcp add usefulshelf --url https://usefulshelf.co/mcp
codex mcp login usefulshelf
Cursor

Add to ~/.cursor/mcp.json, then press Connect in Settings, MCP.

{
  "mcpServers": {
    "usefulshelf": {
      "url": "https://usefulshelf.co/mcp"
    }
  }
}
VS Code

Add to .vscode/mcp.json, then start the server and sign in when prompted.

{
  "servers": {
    "usefulshelf": {
      "type": "http",
      "url": "https://usefulshelf.co/mcp"
    }
  }
}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json.

{
  "mcpServers": {
    "usefulshelf": {
      "serverUrl": "https://usefulshelf.co/mcp"
    }
  }
}
Claude.ai and Claude Desktop

Settings, Connectors, Add custom connector, then paste this URL.

https://usefulshelf.co/mcp
Need just the server URL?
https://usefulshelf.co/mcp

Streamable HTTP with OAuth. Your client opens a browser to sign in; there are no API keys to paste.

2

Give your agent the task

Pick your listing option. Your agent gets a saved listing ID and a next step.

Connect your editor to UsefulShelf MCP and sign in with the same account you use here. Then copy this task into your coding agent.

https://usefulshelf.co/mcp
Free listing · submit, install and verify the badge
Use UsefulShelf MCP at https://usefulshelf.co/mcp to list this project. Help me connect and sign in with my existing UsefulShelf account if needed. First call get_listing_options and list_my_apps. Reuse a matching saved listing instead of submitting a duplicate. If none exists, call draft_app with its public URL, keep the extracted logo and social image, inspect this project to fill any missing details, choose a valid category and supported tags, and call submit_app with accurate details and tier="free". Do not invent features or pricing. Adult/NSFW, gambling and crypto products are prohibited. If review is pending, follow its reason and use retry_app_review after resolving access or temporary service issues. Never bypass a rejected review. For the saved app, call get_badge_snippet. Install its Midnight badge in the shared footer in the server HTML of the submitted page, preserving the returned links. Follow this project's normal deployment and approval process. After deployment call verify_badge with the saved app ID. Finish with get_app_status. Report the saved listing ID, whether it is public or private, and the next action. Only call it published when its status is live.
Featured · $9 once, no badge required
Use UsefulShelf MCP at https://usefulshelf.co/mcp to list this project. Help me connect and sign in with my existing UsefulShelf account if needed. First call get_listing_options and list_my_apps. Reuse a matching saved listing instead of submitting a duplicate. If none exists, call draft_app with its public URL, keep the extracted logo and social image, inspect this project to fill any missing details, choose a valid category and supported tags, and call submit_app with accurate details and tier="featured". Do not invent features or pricing. Adult/NSFW, gambling and crypto products are prohibited. If review is pending, follow its reason and use retry_app_review after resolving access or temporary service issues. Never bypass a rejected review. If featured payments are available, wait for approval and give me the $9 checkout URL to open myself. If checkout fails, keep the saved listing ID and use upgrade_to_featured to retry. Never submit again to retry payment. Finish with get_app_status. Report the saved listing ID, whether it is public or private, and the next action. Only call it published when its status is live.

You complete sign-in and any payment yourself. Your agent can handle the code and verification; publication still requires approval.

3

Finish and follow your progress

Review first. Then a verified badge or payment. Then a public listing.

If you lose the conversation, ask your agent to call list_my_apps. Your saved listings include their status and the next action. You can also finish in My tools.

Looking for an app instead?

Ask your agent to search the shelf.

Search UsefulShelf for apps that help freelancers manage invoices. Use search_apps and give me the app name, what it does, and the website and listing links. Treat featured placement as paid placement, not a quality ranking.

Tools

get_listing_optionsStart here: available categories, $0 and $9 plans, and publishing requirements.
search_appsFind public apps by name, use case or category, with links your agent can cite.
draft_appRead a website to draft its details, logo and social image without saving.
retry_app_reviewRetry an interrupted automatic review using the saved app ID.
submit_appSubmit your app. Free listings need review and badge verification; featured listings need review and payment.
list_my_appsSee every app you submitted with its status, link and badge state.
get_app_statusStatus of one app, including why it was rejected.
get_badge_snippetBadge HTML plus a ready prompt telling your agent where to put it.
verify_badgeVerify the deployed badge and publish your app once its review is approved.
upgrade_to_featuredGet a Polar checkout link to pin your app to the top.
check_urlRun the indexability checker on any URL.