---
title: "How to Connect"
description: "Endpoint URL, authentication, transport protocol, and discovery for the ScholarXIV MCP server."
canonical_url: "https://scholarxiv.com/developers/docs/mcp/connect"
markdown_url: "https://scholarxiv.com/developers/docs/mcp/connect.md"
---

> For the complete documentation index, see [llms.txt](/llms.txt).

# How to Connect
URL: /developers/docs/mcp/connect
LLM index: /llms.txt
Description: Endpoint URL, authentication, transport protocol, and discovery for the ScholarXIV MCP server.
Related: mcp, mcp/quickstart, mcp/clients

# How to Connect

The ScholarXIV MCP server is a remote endpoint using the Streamable HTTP transport.

## Endpoint

```
POST https://www.scholarxiv.com/api/mcp
```

This is the single endpoint for all MCP operations. Your client sends JSON-RPC requests to this URL.

## Authentication

Every request requires a valid API key in the `Authorization` header:

```http
Authorization: Bearer sxv_your_api_key_here
```

Alternatively, you can use the `x-api-key` header:

```http
x-api-key: sxv_your_api_key_here
```

Keys always start with `sxv_`. Create one at the [Developer Dashboard](/developers/dashboard/apikeys).

## Transport

| Property         | Value                                    |
| ---------------- | ---------------------------------------- |
| Type             | Streamable HTTP                          |
| Protocol Version | `2025-06-15`                             |
| Session State    | Stateless (no persistent sessions)       |
| Response Format  | JSON (when `enableJsonResponse` is used) |

The server is **stateless** — each request is independent. There is no session persistence between tool calls. This makes it compatible with serverless deployments.

## Discovery

Clients that support `.well-known` auto-discovery can probe these endpoints:

```
GET https://scholarxiv.com/.well-known/mcp/server-card.json
GET https://scholarxiv.com/.well-known/mcp.json
```

Both return a server card with:

```json
{
	"name": "com.scholarxiv/api",
	"version": "1.0.0",
	"description": "ScholarXIV academic paper search, collections, bookmarks, comments, and research tools",
	"title": "ScholarXIV",
	"websiteUrl": "https://scholarxiv.com",
	"remotes": [
		{
			"type": "streamable-http",
			"url": "https://www.scholarxiv.com/api/mcp",
			"supportedProtocolVersions": ["2025-06-15"],
			"headers": [
				{
					"name": "Authorization",
					"description": "Bearer token with your ScholarXIV API key (sxv_...)",
					"isRequired": true,
					"isSecret": true
				}
			]
		}
	]
}
```

## CORS

The MCP endpoint and discovery endpoints include CORS headers for browser-based clients:

```
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, x-api-key
```

## Rate Limiting

MCP calls share the same rate limit as the REST API. Your plan's hourly limit applies to both:

| Plan | Rate Limit          |
| ---- | ------------------- |
| Free | 1,200 requests/hour |
| Plus | 2,400 requests/hour |
| Pro  | 3,600 requests/hour |

When rate limited, you'll receive a `429` status with a `Retry-After` header.

## Error Responses

| Status | Meaning                                      |
| ------ | -------------------------------------------- |
| `401`  | Invalid or missing API key                   |
| `429`  | Rate limit exceeded                          |
| `405`  | GET or DELETE not supported (stateless mode) |

## Next Steps

- [Client Configuration](/developers/docs/mcp/clients) — config for every major client
- [Tool Catalog](/developers/docs/mcp/tools) — all 36 tools

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
