Docs

Service catalog

Make your CrabTalk service discoverable. Classify tools by platform and job, publish services or templates, and contribute catalog categories through GitHub.

The catalog groups tools by the task they perform, so people can find services to call or templates to deploy. Browse Explore for public listings, or use MCP search to find deployed tools from your agent.

Categories, platforms and jobs

Term Example Meaning
Category Web A group of related platforms.
Platform web The subject or system a tool works with, such as web, github or company.
Job web.scrape A task under that platform. Multiple services can provide the same job.
Provider your-account/reader, tool read A deployed tool that performs the job.

A service address such as web/markdown names an account and service. Its read tool declares the job web.scrape; the account name does not determine its catalog classification.

Supported categories and platforms

These are the supported classification names; available services are listed in Explore. Source: catalog.toml.

Category ID Platform prefixes
Web web web, news
Agents agents memory
Operations ops uptime, webhooks
Search & SEO search google, ai-search, bing, duckduckgo, yahoo, yandex, baidu, naver, seznam
Companies companies company, crunchbase, indeed, remoteok, weworkremotely
People people person, creator
Social social x, douyin, facebook, tiktok, linkedin, instagram, weibo, kuaishou, bilibili, xiaohongshu, youtube, zhihu, pipixia, reddit, wechat-channels, wechat-mp, lemon8, threads, spotify, telegram, xigua, rumble, toutiao, pinterest, twitch, wechat-search, bluesky, hackernews, producthunt, youku
Commerce commerce amazon, tiktok-shop, douyin-shop, jd, taobao, walmart, beike, 1688, ebay, xianyu, dewu, etsy, home-depot, lazada, shopify, steam, zillow
Reviews & travel reviews imdb, google-play, douban, tripadvisor, app-store, yelp, apple-maps, glassdoor, trustpilot, airbnb, booking, flights, hotels
Markets markets stocks, crypto, markets
Models models video, speech, image, music, judge, embedding, mesh
Ads ads douyin-xingtu, xiaohongshu-pugongying, meta-ads, qq-huxuan, tiktok-ads
Communication communication phone, sms
Research research github, research, health, wikipedia, economics, medium, packages, stackoverflow, substack, weather, law
Your accounts accounts google-analytics, google-ads, google-business, google-tag-manager, slack, pinterest-ads, snapchat-ads, microsoft-ads, search-console

Example services

These illustrative addresses show how tools are classified; a source example or supported category does not mean that address is deployed on Cloud. Find running Cloud deployments in Explore or with MCP search. Service addresses and catalog job IDs have separate namespaces.

Example address Category Job example
web/seo Web web.seo
web/markdown Web web.scrape
ops/osv Research packages.vulnerabilities
ops/webhooks Operations webhooks.events
ops/uptime Operations uptime.check
web/analytics Web web.analytics.days
agents/memory Agents memory.put

Classify your tools

Add a catalog job to each relevant exported tool in crab.toml:

[tools.read]
access = "public"
title = "Read a webpage as Markdown"
catalog = "web.scrape"

The table name must match an exported tool. A tool needs access before it can declare a catalog job. Classification does not change who may call it; see Access.

Choose a platform from the registry. Reuse an existing job when your tool performs that task. Give a new task a descriptive suffix, such as web.seo; jobs are declared by tools, without a registry PR. One tool declares one job.

To inspect deployed providers, read GET /catalog, GET /catalog/{platform} or GET /catalog/{platform}/{job} on the Cloud API. For example, web scraping providers lists tools declaring web.scrape that an anonymous caller can see. Authenticated catalog requests can also include the caller's private services. Providers and jobs are ordered by calls over the last thirty days.

Publish your listing

Build and deploy again after changing tool metadata. To let other accounts call your deployment, set public = true and expose the intended tools through access.

For a service people should run privately, set template = true and use crab publish. Explore includes published templates even without a running public deployment. Template publication does not expose your instance or add a running provider to the catalog API. See Publishing for the commands and approval flow.

Your service can live in your own repository and account. Listing it does not require contributing its implementation to the Crab repository.

Write a discoverable listing

  • Set a specific package description in Cargo.toml; it appears in Explore and the service page's title and description.
  • Give each tool a concise, task-focused title, at most sixty characters on one line. Describe its behavior and arguments in Rust doc comments.
  • Write a README with a concrete call example, required setup and important limits. It appears on the service page and in MCP resources. Follow the service README guide.
  • Link to your public service page from your project's documentation so readers can inspect its tools or deploy a copy.

MCP search matches service addresses, service descriptions, tool names, titles, descriptions, catalog jobs and category IDs and titles. A catalog job supplies classification; it does not replace those descriptions.

Propose a platform or category

If no existing platform fits, open a pull request in crabtalk/crab changing crates/sdk/catalog.toml:

  1. Add the platform identifier to the appropriate category's platforms list. A platform belongs to exactly one category.
  2. If a new category is needed, add a TOML table with a title and platforms list.
  3. Explain the task the platform covers and include example job IDs and tools that would use them. Check for an existing equivalent before proposing another name.

The registry is compiled into the SDK. A new platform needs CLI and Cloud builds containing the change before it can be used there. Existing platforms can accept new jobs without a registry release.