# Use Novig market data in Cursor

> Independent. Not affiliated with, endorsed by or sponsored by Novig.

Canonical: https://novigapi.com/use-with-cursor
Facts checked: 2026-11-12

To use Novig data in Cursor, add the novigapi.com MCP server to .cursor/mcp.json with its URL, https://novigapi.com/api/mcp, and an Authorization header that reads your nv_ key from the environment. Cursor's agent can then query markets and props while it writes code. On 12 Nov 2026, Novig's catalog listed 39 leagues to query. (Source: [Novig API reference: List leagues](https://docs.novig.com/api-reference/catalog/list-leagues.md))

Cursor's agent writes better betting tools when it can see real data. With the novigapi.com MCP server connected, it can look up a real market id, check the response shape and test a formula against live Novig prices instead of inventing them.

## Add the server

Create `.cursor/mcp.json` in your project, or `~/.cursor/mcp.json` to use it in every project:

```json
{
  "mcpServers": {
    "novigapi": {
      "url": "https://novigapi.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:NOVIGAPI_API_KEY}"
      }
    }
  }
}
```

Cursor replaces `${env:NOVIGAPI_API_KEY}` with the variable from your environment, so the file holds no secret and can be committed. Set the variable where Cursor starts, for example in your shell profile:

```bash
echo 'export NOVIGAPI_API_KEY=nv_...' >> ~/.zshrc
# then quit and reopen Cursor so it picks up the variable
```

Open Cursor Settings, then MCP (Tools and Integrations in newer versions). The `novigapi` server should show a green dot and its tools. If it shows an error, the key is usually missing from the environment Cursor was started in.

Where the config can live

| File | Scope | Commit it? |
| --- | --- | --- |
| .cursor/mcp.json | This project | Yes, if the key is an env reference |
| ~/.cursor/mcp.json | Every project on this machine | Not applicable |


## What the agent can do

Tools

| Tool | Typical use while coding |
| --- | --- |
| get_markets, get_market | Fetch a real board to design a table or test a parser |
| get_player_props | Pull a player's ladder to test ranking logic |
| get_line_history, get_line_moves | Get a real series or recorded moves to test a chart or a steam detector |
| fair_price | Check your devig code against the API's answer |
| devig | Devig sportsbook prices to compare with Novig |
| search, fetch | Find a player, team or league by name, then read its markets |


## Prompts that work well

- "Use novigapi to get tonight's NBA steals markets, then write a TypeScript type for the response and a function that ranks them by spread."
- "Fetch Cooper Flagg's Novig props and write a pytest that checks our fair() against the API's fair field."
- "Get line history for one NFL rushing yards market and build a small chart component from the real points."
- "Write a script that polls the Novig board every 30 seconds and stays under 60 requests a minute."

A worked check the agent can reproduce: on 12 Nov 2026, Cooper Flagg 1.5 steals had bids of 0.39 (Over) and 0.57 (Under). The Over ask is 1 - 0.57 = 0.43 and the fair price is (0.39 + 0.43) / 2 = 0.41, which is what the API returns.

## From agent to app

The MCP tools are for the agent. The code it writes should call the REST API at `https://novigapi.com/api/v1` with the same key from the environment. The endpoint reference pages ([markets](https://novigapi.com/docs/endpoints/markets), [player props](https://novigapi.com/docs/endpoints/player-props), [line history](https://novigapi.com/docs/endpoints/line-history)) carry copy-ready Python and JavaScript.

```typescript
// What the agent typically writes for your app
const res = await fetch("https://novigapi.com/api/v1/markets?league=NBA&market_type=STEALS", {
  headers: { Authorization: "Bearer " + process.env.NOVIGAPI_API_KEY },
});
const { data, meta } = await res.json();
```

## Troubleshooting

- **Red dot or no tools listed:** Cursor did not see `NOVIGAPI_API_KEY`. Apps opened from the Dock may not load your shell profile; start Cursor from a terminal with `cursor .` to test.
- **401 INVALID_API_KEY in a tool result:** the header reached us without a valid key. Check that the value reads `Bearer ` plus the key, with one space.
- **429 in a tool result:** the agent hit the per-minute ceiling or the month's credits. The result says which, when it resets, and where to upgrade or add the $9 top-up.
- **The agent ignores the tools:** mention novigapi by name in the prompt, or turn on the server's tools in the agent's tool list.

Every tool result includes `meta.observed_at` and `meta.source_age_seconds`. On paid plans data is at most about 10 seconds old, so tests the agent writes against live prices should allow for prices changing between runs; for fixed tests, save one real response to a fixture file and test against that.

## Credits

Agent tool calls spend credits like REST calls: 1 credit per 100 rows requested for markets and props, more for history. An agent exploring a codebase can make many calls, so watch usage in your dashboard. Free has 100 credits a month and 20 requests a minute; Developer at $49/mo has 10,000 and 60 a minute. There are no automatic overage charges.

## Questions

### Does Cursor support remote MCP servers with headers?

Yes. A server entry with `url` and `headers` connects over HTTP, and `${env:NAME}` reads a value from your environment.

### Is it safe to commit .cursor/mcp.json?

Yes, as long as the key is an environment reference like `${env:NOVIGAPI_API_KEY}` and never the key itself.

### Can the agent trade on Novig?

No. The server is read-only market data and has no trading tools.

## Sources

- [Cursor docs: Model Context Protocol](https://docs.cursor.com/context/model-context-protocol)
- [novigapi.com: MCP server reference](https://novigapi.com/docs/endpoints/mcp)
- [Novig API reference: List leagues](https://docs.novig.com/api-reference/catalog/list-leagues.md)
- [Model Context Protocol specification](https://modelcontextprotocol.io/specification)

---

Get a free API key: https://novigapi.com/sign-up . Docs: https://novigapi.com/docs . MCP: https://novigapi.com/api/mcp . Operated by Stunning Couches LLC. Independent. Not affiliated with, endorsed by or sponsored by Novig.
