---
title: "Developers - Carlos Garavito"
description: "Public read-only JSON API, OpenAPI document and remote MCP server for the content of cgaravito.dev: posts, projects, services and profile."
canonical_url: "https://cgaravito.dev/en/developers"
last_updated: "2026-09-10T00:00:00.000Z"
locale: "en"
---

# Developers

Everything on this site is available to programs: a read-only JSON API under /api/v1, an OpenAPI 3.1 document, and a remote MCP server that exposes the same data as tools and resources. No API key, no sign-up.

- OpenAPI: https://cgaravito.dev/openapi.json
- MCP: https://cgaravito.dev/mcp

## Endpoints

| Method | Path | Summary | Parameters |
| --- | --- | --- | --- |
| GET | `/api/v1/health` | API status | - |
| GET | `/api/v1/posts` | List published posts | locale, limit, cursor |
| GET | `/api/v1/posts/{locale}/{slug}` | Read one post with its Markdown body | locale, slug |
| GET | `/api/v1/projects` | List projects | locale |
| GET | `/api/v1/services` | List services with pricing tiers | locale |
| GET | `/api/v1/profile` | Read the profile | locale |

## Examples

```bash
curl "https://cgaravito.dev/api/v1/posts?locale=en&limit=5"
```

```bash
curl "https://cgaravito.dev/api/v1/services?locale=en"
```

```bash
curl https://cgaravito.dev/api/v1/posts/en/{slug}
```

```bash
curl https://cgaravito.dev/openapi.json
```

## MCP server

The MCP server runs at /mcp over Streamable HTTP, stateless and without authentication. It exposes the tools list_posts, get_post, list_projects, list_services and get_profile, plus the resources cgaravito://llms.txt, cgaravito://profile/{locale} and cgaravito://posts/{locale}/{slug}.

**Claude Code**

```bash
claude mcp add --transport http cgaravito-dev https://cgaravito.dev/mcp
```

**Codex**

```bash
codex mcp add cgaravito-dev --url https://cgaravito.dev/mcp
```

**mcp.json**

```json
{
  "mcpServers": {
    "cgaravito-dev": {
      "type": "http",
      "url": "https://cgaravito.dev/mcp"
    }
  }
}
```

## Sandbox

Every endpoint is read-only, there is no write surface, so production is safe to call. There is no separate sandbox because nothing can be mutated.

## Errors and limits

Errors are RFC 9457 problem documents with a type URI under https://cgaravito.dev/api/errors/. Rate limiting is advisory: every response carries the X-RateLimit-Limit and X-RateLimit-Remaining headers together with the RateLimit-Policy and RateLimit fields of draft-ietf-httpapi-ratelimit-headers.

## Versioning and deprecation

The path prefix /api/v1 is stable. Breaking changes ship under a new prefix, and the previous one keeps answering for at least 90 days with Deprecation and Sunset headers (RFC 9745, RFC 8594) announcing the date.
