Skip to main content
Glama
gmansystems

Agent Stack Directory

README.md
# Agent Stack Directory: MCP server and open dataset

An open dataset of infrastructure tools for AI agents (cloud browsers, sandboxes, memory, search APIs, email,
integrations, payments, voice, observability, frameworks and auth) plus a small MCP server so AI coding tools can
query it while you build.

- Remote endpoint: `https://agentstackdirectory.com/mcp` (Streamable HTTP, stateless, read-only, no key)
- Live data: https://agentstackdirectory.com/data.json
- Snapshot in this repo: [`data/`](data/) (JSON and CSV)
- Website: https://agentstackdirectory.com/mcp/

## Tools

| Tool | Input | Returns |
| --- | --- | --- |
| `search_tools` | `query?`, `category?`, `open_source?`, `limit?` (1 to 50, default 10) | Matching tools ranked by keyword match |
| `get_tool` | `tool` (slug or name) | Summary, official site, open-source flag, last link check, alternatives in the same category |
| `compare` | `tools` (2 to 4 slugs or names) | Side-by-side table, notable differences, head-to-head page URL when one exists |
| `list_categories` | none | Every category with key, description and tool counts |

Every tool is read-only. Results come back as readable text plus `structuredContent` JSON.

Example prompts:

- "Which sandboxes for running agent code are open source?"
- "Compare E2B and Daytona."
- "What are the alternatives to Browserbase?"

Listed in the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=com.agentstackdirectory) as `com.agentstackdirectory/agent-stack-directory`. Server card: https://agentstackdirectory.com/.well-known/mcp/server-card.json

## Install (remote, nothing to run locally)

### Claude Code

```sh
claude mcp add --transport http agent-stack-directory https://agentstackdirectory.com/mcp
```

### Cursor

`.cursor/mcp.json` in your project, or `~/.cursor/mcp.json` for all projects:

```json
{
  "mcpServers": {
    "agent-stack-directory": {
      "url": "https://agentstackdirectory.com/mcp"
    }
  }
}
```

### VS Code

`.vscode/mcp.json` in your workspace:

```json
{
  "servers": {
    "agent-stack-directory": {
      "type": "http",
      "url": "https://agentstackdirectory.com/mcp"
    }
  }
}
```

Or from a terminal:

```sh
code --add-mcp '{"name":"agent-stack-directory","type":"http","url":"https://agentstackdirectory.com/mcp"}'
```

## Install (local, stdio)

Needs Node 18 or newer. `npx` builds the server from this repository on first run.

### Claude Code

```sh
claude mcp add agent-stack-directory -- npx -y github:gmansystems/agent-stack-directory
```

### Cursor

```json
{
  "mcpServers": {
    "agent-stack-directory": {
      "command": "npx",
      "args": ["-y", "github:gmansystems/agent-stack-directory"]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "agent-stack-directory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:gmansystems/agent-stack-directory"]
    }
  }
}
```

### From a clone

```sh
git clone https://github.com/gmansystems/agent-stack-directory
cd agent-stack-directory
npm install
node dist/stdio.js
```

Environment variables (optional):

| Variable | Default | Purpose |
| --- | --- | --- |
| `AGENT_STACK_DATA_URL` | `https://agentstackdirectory.com/data.json` | Where to fetch the dataset |
| `AGENT_STACK_DATA_FILE` | unset | Read a local JSON file instead, for offline use, e.g. `data/agent-stack-directory.json` |

The stdio server caches the dataset in memory for 10 minutes and keeps serving the last good copy if a refresh fails.

## Dataset

`data/agent-stack-directory.json` holds `categories` and `listings`. Each listing has:

| Field | Meaning |
| --- | --- |
| `slug` | Stable identifier, used in directory URLs |
| `name` | Product name |
| `url` | Official site |
| `category` | Category key (see `categories`) |
| `summary` | One plain sentence on what it does, written from the vendor's own site |
| `tagline` | The vendor's own tagline |
| `open_source` | `true` when the product is marked open source |
| `added` | Date added to the directory |
| `verified` | Date the official link was last checked |

CSV copies: `data/agent-stack-directory.csv` and `data/categories.csv`. Refresh the snapshot with `npm run snapshot`.

Sponsorship never changes the data or the search ranking. The dataset has no sponsored fields.

## Development

```sh
npm install
npm test                 # unit tests plus MCP client tests over stdio and Streamable HTTP
npm run test:remote      # live check of https://agentstackdirectory.com/mcp with the MCP client
npm run build:worker     # bundle src/worker.ts for the Cloudflare Pages Function
```

Layout:

- `src/core.ts`: data loading and the tool logic, no I/O
- `src/server.ts`: MCP server definition (official TypeScript SDK)
- `src/stdio.ts`: stdio entry point (`agent-stack-directory-mcp` bin)
- `src/worker.ts`: stateless Streamable HTTP handler for Cloudflare Workers or Pages Functions

To host your own remote copy on Cloudflare, bundle `src/worker.ts` and call `handleMcpRequest(request, loader)` from a Worker.

## License

- Code: MIT, see [`LICENSE`](LICENSE).
- Data: CC BY 4.0, see [`DATA-LICENSE.md`](DATA-LICENSE.md). Please credit Agent Stack Directory with a link to https://agentstackdirectory.com.

Corrections and new tools: https://agentstackdirectory.com/submit/ or open an issue.

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

The four tools occupy clearly distinct roles: search_tools for discovery, get_tool for single-item detail, compare for side-by-side evaluation, and list_categories for taxonomy browsing. There is no functional overlap, so an agent can select unambiguously.

Naming Consistency4/5

Three tools follow a clean verb_noun pattern (search_tools, get_tool, list_categories) in consistent snake_case. The lone 'compare' is a bare verb that breaks the pattern slightly, but it remains readable and idiomatic.

Tool Count4/5

Four tools is well-scoped for a read-only directory server, with each tool earning its place. It is on the lean side but not thin enough to feel incomplete for the domain.

Completeness4/5

The surface covers the core directory workflows: browse categories, search/filter tools, fetch full listings, and compare tools. Minor gaps like global cross-category listing or browsing alternatives without a specific category exist, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues