OneStop MCP server

Give an MCP-compatible agent structured access to OneStop discovery and owned posts. Public tools work before a OneStop account is linked.

Endpoint
https://api.askonestop.com/mcp
Transport
Streamable HTTP
Authentication
MCP OAuth; OneStop link for owned actions
Catalog
18 tools plus MCP Apps UI

Quickstart

Choose a client and add the single production endpoint.

Claude Code

Run this command in your terminal:

claude mcp add --transport http onestop https://api.askonestop.com/mcp

Codex CLI

Run this command in your terminal:

codex mcp add onestop --url https://api.askonestop.com/mcp

Cursor

Add this server to your MCP configuration:

{
  "mcpServers": {
    "onestop": {
      "url": "https://api.askonestop.com/mcp"
    }
  }
}

OpenClaw

Run this command in your terminal:

openclaw mcp set onestop '{"transport":"streamable-http","url":"https://api.askonestop.com/mcp"}'

Other MCP clients

Use this Streamable HTTP configuration:

{
  "mcpServers": {
    "onestop": {
      "type": "http",
      "url": "https://api.askonestop.com/mcp"
    }
  }
}

Try it

After the server is connected, ask your agent for a concrete result.

Find three used road bikes near Brooklyn under $1,200. Compare them and show the full details for your top pick.

Access model

Connecting a client establishes an MCP OAuth session. Search, public post details, place lookup, categories, and listing UI do not require a linked OneStop account.

Owned and saved posts require an active, onboarded OneStop user. When a tool needs that access, it returns ACCOUNT_LINK_REQUIRED with an absolute link that completes the connection in the browser.

Tools

Every successful tool returns concise text, validated machine-readable structuredContent, and an advertised output schema.

create_post prepares an unposted listing. The agent then calls render_post_editor, where the user can edit it, add images, and choose Post listing. Only the app can publish.

Public and public app tools

ToolAccessPurpose
search_postsPublicSearch active posts and return paginated summaries.
get_postPublicLoad complete public details for one active post.
find_placePublicResolve a place name to the place_id accepted by post tools.
render_viewPublicShow a personalized feed, saved posts, or owned posts in the interactive OneStop app.
get_categoriesPublicLoad the category tree and exact accepted slugs.
render_post_editorPublic / appOpen an owned post for editing and approval.

Linked-account tools

ToolAccessPurpose
create_postLinkedPrepare and return a complete unposted post.
update_postLinkedUpdate the content of an owned post.
list_my_postsLinkedPage through owned published post summaries.
get_my_saved_postsLinkedPage through saved public post summaries.
get_my_postLinkedLoad a known owned post for model readback.
attach_imageLinkedAttach images supplied through a client's native file input.
delete_postLinkedDelete an owned unpublished or published post.

App-only tools

ToolAccessPurpose
get_feed_pageAppLoad the next page for the interactive feed.
publish_postAppPublish the post explicitly approved in the editor.
prepare_image_uploadsAppPrepare short-lived upload requests for the image picker.
get_saved_post_statesAppCheck which visible posts the linked user has saved.
set_saved_postAppSave or unsave a visible public post.

Places and place IDs

Post tools do not accept plaintext locations. Call find_place, choose one of its candidates, and pass that candidate’s place_id to search_posts, create_post, or update_post.

Location-based posts require a locality or finer place. Country, region, and subregion IDs return LOCATION_TOO_BROAD.

Structured success, explicit errors

Tool failures set isError: true and put a safe code and explanation in text content. They intentionally carry no structuredContent.

LISTING_NOT_FOUND: Listing not found.

Internal exceptions are reported to observability and reduced to INTERNAL_SERVER_ERROR.

Account linking

The link flow is separate from the MCP client connection. It associates the current MCP authorization with one OneStop user; it does not expose an Auth0 access token to the MCP client or browser JavaScript.

After linking, retry the original tool call. The same authorization immediately gains access to owned and saved posts, subject to the user remaining active and onboarded.