By PresentFast Team · Last updated 2026-05-21
HTTP server
PresentFast hosts a remote MCP server at https://presentfast.com/api/mcp. Any spec-compliant client (claude.ai, custom integrations, your own agent) can attach. Authentication uses OAuth 2.0 with PKCE; clients self-register via RFC 7591 Dynamic Client Registration. No binary to install.
- Endpoint
- /api/mcp
- Transport
- Streamable HTTP
- Auth
- OAuth, PKCE, DCR
- Spec
- 2025-06-18
When should I use the remote HTTP server?
The remote server speaks the Model Context Protocol over a single Streamable HTTP endpoint. Sessions are short-lived and stateless; every request is authenticated with a Bearer access token issued by PresentFast's OAuth authorization server.
Choose this server when:
- You don't control the host machine (browser-based clients, SaaS).
- You want one auth flow per identity, shared across devices.
- You'd rather not ship and update a local binary.
If you're on a terminal or in a code editor, the local stdio server via @presentfast/mcp-server is faster (no network hop). See the Claude Code, Cursor, or Codex guides for that path.
How does authentication work?
PresentFast publishes OAuth 2.0 metadata at the well-known locations required by the spec. A connecting client can bootstrap end-to-end with no manual configuration:
WWW-Authenticate on any unauthenticated request to /api/mcp./oauth/authorize, /oauth/token, and /oauth/register.client_id. PKCE (S256) is required on every authorize.authorization_code + code_verifier for a Bearer access token. Refresh tokens supported.How do I connect from Claude.ai?
Web Claude has a one-field setup for remote MCP servers. Open Settings → Connectors → Custom Connectors and paste:
Name: PresentFast
URL: https://presentfast.com/api/mcpClick Connect, sign in to PresentFast in the popup, approve the all scope, and you're live. The connector flips to connected and the model can call every tool below.
A longer walk-through with screenshots lives on the Claude.ai guide.
How do I connect from any other MCP client?
Most spec-compliant clients accept a JSON config like this. Drop the PresentFast endpoint into the servers map:
{
"mcpServers": {
"presentfast": {
"url": "https://presentfast.com/api/mcp",
"transport": "http"
}
}
}On first attach the client will follow the OAuth flow described above. If your client doesn't speak DCR yet, register manually:
curl -X POST https://presentfast.com/api/oauth/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "my-custom-agent",
"redirect_uris": ["http://localhost:3333/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none"
}'The response contains the client_id you'll pass to /api/oauth/authorize.
What tools does the HTTP server expose?
| Tool |
|---|
| publish_presentation |
| list_presentations |
| update_presentation |
| get_presentation_analytics |
| start_login |
How do I smoke-test my connection?
Once you have an access token (copy it from your client's session storage, or run a manual authorize + token flow), poke tools/list:
curl -sS https://presentfast.com/api/mcp \
-H "Authorization: Bearer $PF_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'A 401 with a WWW-Authenticate header pointing to the Protected Resource Metadata means your token is missing or expired. Re-run the flow and try again.
What rate limits and error codes should I expect?
| Code | Meaning |
|---|---|
| 401 | Missing or expired Bearer token. |
| 403 | Token lacks the requested scope. |
| 429 | Rate-limited per client. |
| 5xx | Server fault. |
OAuth grants are listed and revocable under Settings on your account.