travelmcp-directory
README.md
# travelMCP Directory MCP Server
A hosted MCP server that lets any AI assistant search the [OmniTravel travelMCP directory](https://omnitravel.ai): MCP servers, agent skills and APIs built for the travel industry.
Published in the official MCP Registry as `ai.omnitravel/travelmcp-directory`.
**Endpoint:** `https://omnitravel.ai/mcp` (Streamable HTTP, no authentication)
## Connect
Claude Code:
```bash
claude mcp add --transport http travelmcp https://omnitravel.ai/mcp
```
Claude Desktop, Cursor or any MCP client:
```json
{
"mcpServers": {
"travelmcp": {
"type": "http",
"url": "https://omnitravel.ai/mcp"
}
}
}
```
Then ask your assistant things like "which MCP servers handle hotel ID mapping?" or "show me the setup docs for the room matching API".
## Tools
| Tool | Arguments | Returns |
| --- | --- | --- |
| `search_travel_tools` | `query`, `category`, `type`, `limit` (all optional) | Matching listings with tagline, category, author and URL. Typo-tolerant full-text search. |
| `get_tool_details` | `slug` | One listing in full: description, install snippet and setup documentation. |
| `list_categories` | none | Every category with its slug and listing count. |
All tools are read-only.
## Architecture
```
MCP client ──Streamable HTTP──▶ this server ──HTTP──▶ travelMCP JSON API ──▶ PostgreSQL
```
The server holds no database connection. It calls the directory's public JSON API
(`https://omnitravel.ai/tm-api/v1`), which keeps this process decoupled from the
directory's schema: the catalogue can change shape without breaking the MCP layer.
Requests are handled in stateless mode, one server and transport instance per
request, which is the simplest correct pattern behind a plain reverse proxy.
## Run your own
```bash
npm install --omit=dev
cp .env.example .env # set API_BASE if the directory API is elsewhere
node server.js # listens on 127.0.0.1:3200
```
Environment:
| Variable | Default | Purpose |
| --- | --- | --- |
| `MCP_PORT` | `3200` | Local listen port |
| `API_BASE` | `http://127.0.0.1:3100` | Base URL of the travelMCP directory app |
| `SITE_URL` | `https://omnitravel.ai` | Public site URL, used in health output |
Behind nginx:
```nginx
location ^~ /mcp {
proxy_pass http://127.0.0.1:3200;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 300s;
}
```
## Other ways to reach the same data
| Access | URL |
| --- | --- |
| REST API | `https://omnitravel.ai/tm-api/v1` |
| Discovery manifest | `https://omnitravel.ai/.well-known/mcp.json` |
| For AI crawlers | `https://omnitravel.ai/llms.txt`, `https://omnitravel.ai/llms-full.txt` |
## About
Built by [OmniTravel](https://omnitravel.ai), a Paris-based travel technology
company working on agentic distribution, hotel ID mapping and real-time room
type mapping.
MIT licensed.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues