# MCP.so — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Discover and explore MCP servers on the mcp.so marketplace by browsing categories, searching by tags, viewing detailed server information, and checking available tools and integrations. Find top-rated servers, compare clients, and filter options to identify the perfect MCP solutions for your needs.

**Category:** Developer Tools | **Website:** [mcp.so/](https://mcp.so/) | **Docs:** [parse.bot/marketplace/d8072689-168f-4009-92e5-f5cf4460c580/mcp-so-api](https://parse.bot/marketplace/d8072689-168f-4009-92e5-f5cf4460c580/mcp-so-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get server detail

Fetch full details for a single MCP server including name, tags, category, language, GitHub URL, configuration JSON, and description. The slug and optional author identify the server. Returns a single server object with all available metadata.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `author` | string | No | Author handle (e.g. 'modelcontextprotocol', 'ahujasid'). Required for servers that share slug names with different authors. |
| `slug` | string | Yes | Server slug identifier (e.g. 'github', 'puppeteer', 'blender'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/get-server-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"author":"<string>","slug":"<string>"}'
```

### Get server tools

Fetch the tools (capabilities) exposed by an MCP server. Returns tool names and descriptions. Not all servers expose tool metadata — servers without tools return an empty array.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `author` | string | No | Author handle (e.g. 'modelcontextprotocol', 'ahujasid'). Required for servers that share slug names with different authors. |
| `slug` | string | Yes | Server slug identifier (e.g. 'github', 'puppeteer', 'blender'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/get-server-tools \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"author":"<string>","slug":"<string>"}'
```

### Get top servers with metadata

Fetch a list of top MCP servers with full metadata including name, URL, GitHub URL, category, tags, and language. Fetches detail pages for each server so response time increases with limit. Useful for building a catalog of the most popular servers with complete information.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of servers to return. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/get-top-servers-with-metadata \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>"}'
```

### List categories

List all available MCP server categories with their slugs and URLs. Returns the complete set of categories used to organize servers on the marketplace.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/list-categories \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List clients

List MCP client applications (e.g. Cursor, VSCode, Windsurf, Cline). Returns all known clients that support the MCP protocol.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/list-clients \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List servers

Fetch a paginated list of MCP servers. Returns server names, URLs, and short descriptions. Supports filtering by tab (featured or latest). Each page returns up to ~50 servers.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `tab` | string | No | Filter tab. Accepted values: 'featured', 'latest'. Omitting returns all servers. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/list-servers \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","tab":"<string>"}'
```

### List servers by category

List MCP servers filtered by category slug. Returns servers on the specified page. Some categories may have all results on page 1.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `slug` | string | Yes | Category slug (e.g. 'developer-tools', 'browser-automation', 'databases'). Obtain from list_categories endpoint. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/list-servers-by-category \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","slug":"<string>"}'
```

### List servers by tag

List MCP servers filtered by tag name. Returns paginated results of servers that have the specified tag applied.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `tag` | string | Yes | Tag name (e.g. 'github', 'postgresql', 'browser-automation'). Obtain from list_tags endpoint. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/list-servers-by-tag \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","tag":"<string>"}'
```

### List tags

List all available MCP server tags with their names and URLs. Tags are user-generated labels applied to servers for discovery.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/list-tags \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Search servers

Search MCP servers by keyword. Returns matching servers with name, URL, and short description. Results are not paginated — all matches for the query are returned in a single response.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search keyword (e.g. 'database', 'github', 'filesystem'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/mcp-so/search-servers \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.