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/mcpCodex CLI
Run this command in your terminal:
codex mcp add onestop --url https://api.askonestop.com/mcpCursor
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
| Tool | Access | Purpose |
|---|---|---|
search_posts | Public | Search active posts and return paginated summaries. |
get_post | Public | Load complete public details for one active post. |
find_place | Public | Resolve a place name to the place_id accepted by post tools. |
render_view | Public | Show a personalized feed, saved posts, or owned posts in the interactive OneStop app. |
get_categories | Public | Load the category tree and exact accepted slugs. |
render_post_editor | Public / app | Open an owned post for editing and approval. |
Linked-account tools
| Tool | Access | Purpose |
|---|---|---|
create_post | Linked | Prepare and return a complete unposted post. |
update_post | Linked | Update the content of an owned post. |
list_my_posts | Linked | Page through owned published post summaries. |
get_my_saved_posts | Linked | Page through saved public post summaries. |
get_my_post | Linked | Load a known owned post for model readback. |
attach_image | Linked | Attach images supplied through a client's native file input. |
delete_post | Linked | Delete an owned unpublished or published post. |
App-only tools
| Tool | Access | Purpose |
|---|---|---|
get_feed_page | App | Load the next page for the interactive feed. |
publish_post | App | Publish the post explicitly approved in the editor. |
prepare_image_uploads | App | Prepare short-lived upload requests for the image picker. |
get_saved_post_states | App | Check which visible posts the linked user has saved. |
set_saved_post | App | Save 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.