# Guide for agents

AgentHub is a resource directory for AI agents. The four access methods below read the same data; pick the one that fits your runtime.

## 1. llms.txt

- [https://hebbmind.com/llms.txt](https://hebbmind.com/llms.txt): the site index. Lists the entry points of the tool list (by type, profession and tag), rankings, today's picks, editors' picks, collections and the latest posts.
- [https://hebbmind.com/llms-full.txt](https://hebbmind.com/llms-full.txt): description, repository and install commands of every listed resource.

## 2. Markdown pages

Append `.md` to the URL of any page, or send the header `Accept: text/markdown`, to get the Markdown version of that page:

```bash
curl https://hebbmind.com/ko/tools.md
curl -H 'Accept: text/markdown' https://hebbmind.com/ko/tools
```

| Page | Markdown URL |
| --- | --- |
| Home: editors' picks, collections, trending, latest posts and the entry points of the tool list | `/index.md` |
| Tools: every resource. Accepts `?q=` to search and `?type=`, `?profession=`, `?tag=` to filter by type, profession and tag; filters can be combined. `?page=` for the next page | `/tools.md` |
| Trending (accepts `?type=` to filter by type) | `/hot.md` |
| Tag list (accepts `?q=` to find tags by name) | `/tags.md` |
| Resource details (with install commands and README) | `/<type>/<slug>.md` |
| Collections: hand-picked sets of resources, each built around one job | `/collections.md` |
| Collection details: its resources and why each one is there | `/collections/<slug>.md` |
| Blog: the list of posts (`?page=` for the next page) | `/blog.md` |
| Post: the article, with embedded resources and collections written as links | `/blog/<slug>.md` |

## 3. JSON API

No authentication, CORS enabled. The machine-readable definition is at [OpenAPI](https://hebbmind.com/openapi.json).

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/search?q=&type=&profession=&tag=&page=&pageSize=` | Keyword search |
| GET | `/api/v1/resources?type=&profession=&tag=&featured=&page=&pageSize=` | Resource list |
| GET | `/api/v1/resources/{type}/{slug}` | Resource details, including the README |
| GET | `/api/v1/professions` | The current profession list and the number of resources under each |
| GET | `/api/v1/tags?type=&profession=&q=&limit=` | Tags and the number of resources carrying each |
| GET | `/api/v1/hot?type=&profession=&limit=` | Trending: the resources that got the most attention in the last 7 days |
| GET | `/api/v1/daily-picks` | Today's picks: popular resources chosen by the operators, each with a short recommendation |
| GET | `/api/v1/collections` | The list of collections |
| GET | `/api/v1/collections/{slug}` | Collection details: its resources, each with a note |

```bash
curl 'https://hebbmind.com/api/v1/search?q=pdf&type=skill'
curl 'https://hebbmind.com/api/v1/resources?profession=fullstack'
```

## 4. MCP server

Endpoint: `https://hebbmind.com/api/mcp` (Streamable HTTP, stateless, no authentication).

| Tool | Purpose |
| --- | --- |
| `search_resources` | Search resources by keyword, optionally filtered by type, profession and tags; lists by popularity when no keyword is given |
| `get_resource` | Read the details, install commands and README of one resource |
| `list_professions` | List the current professions |
| `list_tags` | List the tags in use and the number of resources carrying each |
| `list_hot` | List the trending ranking, optionally filtered by type and profession |
| `list_daily_picks` | List today's picks and their recommendations |
| `list_featured` | List the editors' picks |
| `list_collections` | List the collections |
| `get_collection` | Read the resources in one collection and why each one is there |

Add it to Claude Code:

```bash
claude mcp add --transport http agenthub https://hebbmind.com/api/mcp
```

Add it to Codex:

```bash
codex mcp add agenthub --url https://hebbmind.com/api/mcp
```

## Profession ids

A resource can be tagged with several professions. The `profession` parameter and the `professions` field in responses use profession ids.
The list is maintained by the operators; entries are added, removed and renamed over time. Request `/api/v1/professions` for the latest list.

The Markdown version of the tool list, the resource list and search endpoints, and `search_resources` accept several professions at once (up to 5); a resource matches when it suits any of them. Separate them with commas in URLs (`profession=frontend,design`) and pass an array of ids over MCP. Trending, the tag list and `list_featured` accept only one.

The current list:

| Id | Profession |
| --- | --- |
| `fullstack` | Full-stack / Indie |
| `frontend` | Frontend |
| `backend` | Backend |
| `mobile` | Mobile & desktop |
| `gamedev` | Game development |
| `qa` | QA |
| `devops` | DevOps / SRE |
| `algorithm` | ML / AI |
| `data-engineering` | Data engineering |
| `data` | Data analysis |
| `gis` | GIS / Surveying |
| `security` | Security |
| `product` | Product / Projects |
| `design` | Design |
| `architecture` | Architecture / Civil |
| `hardware` | Hardware engineering |
| `operations` | Operations |
| `marketing` | Marketing & sales |
| `office` | Admin / Office |
| `writing` | Writing / Content |
| `media` | Video / Media |
| `support` | Customer support |
| `hr` | HR |
| `legal` | Legal |
| `finance` | Finance / Accounting |
| `investment` | Investing / Analysis |
| `education` | Teachers / Students |
| `research` | Research / Academia |
| `healthcare` | Healthcare |
| `translation` | Translation / L10n |
| `founder` | Founders |

## Tags

Tags are free text written on resources (always lowercase). There is no fixed list; tags come and go with the resources. The ones in use are at `/api/v1/tags`.

- The `tag` parameter takes several tags separated by commas, five at most: a resource must carry **all** of them. In MCP the matching argument is the array `tags`.
- A tag matches as a whole, case-insensitively. When no resource carries a tag the result is empty; it is not a parameter error.
- To match by partial text use keyword search (`q`): keywords also match tags.

## Regions and languages

Content is split into regions. Each region has its own resources, profession list, daily picks and trending ranking; they are independent of each other. There are two regions today:

| Region | Content | Languages that belong to it |
| --- | --- | --- |
| `zh` | Chinese | `zh-CN`, `zh-TW` |
| `en` | English | `en`, `es`, `ja`, `ko`, `fr`, `de`, `pt-BR`, `ru` |

- **The same `type` + `slug` can be a different resource in another region**, or not exist there at all. Once you have found a resource, keep reading it in the same region.
- Pages and Markdown: the language is the first path segment (e.g. `/zh-CN/tools.md`) and decides which region is read. URLs without a prefix are English and the `en` region; without a prefix you can also state the language with `Accept-Language`. Links produced by this site carry the prefix, so following them never changes the region.
- JSON API: pick the region with the `region` parameter (e.g. `?region=zh`). Without it the region follows `Accept-Language`, and is `en` when that header is absent. Resources and professions in responses carry a `region` field.
- MCP: every tool accepts an optional `region` argument, with the same rules.
- Names, descriptions and recommendations can be written in several languages: you get the one for the language you asked for, or the region's primary language when there is none. READMEs are shown as they are in the repository.
- The wording of Markdown pages, `llms.txt` and this guide exists in English and Chinese only: Chinese for the `zh` region, English otherwise. Error messages of the JSON API and MCP are in Chinese.

## Conventions

- Install commands are filled in by the operators after manual verification. When a resource has no install command for an agent, the field is `null`; look for instructions in the repository README instead.
- Today's picks are chosen by hand. When there is no update for the day, the most recent picks are returned and the `date` field carries their date.
- Trending is computed from the last 7 days of on-site data: heat = views + 3 × install-command copies. Reading resource details (Markdown, JSON or MCP) counts as a view. The ranking is cached for a few minutes; entries with a `heat` of 0 were filled in by GitHub stars because there was not enough data.
- READMEs are cached copies from GitHub, refreshed every 24 hours. Visit the repository for the latest content.
- Ask the user for confirmation before running any install command.
- When your user wants to send AgentHub a suggestion (feedback, a tool to recommend, or something they need), give them https://hebbmind.com/ko/suggest: submitting requires solving a slider puzzle in the browser, so agents cannot submit on their behalf.
