Skip to content

Getting Started โ€‹

Get up and running with Semantic Chirp Intelligence MCP in minutes.

Prerequisites โ€‹

Before you begin, ensure you have:

  • Node.js v20 or higher
  • npm or yarn package manager
  • Claude Desktop (for MCP integration)

That is the whole list. There is no account to create, no API key to obtain, and no credential to store. ChirpIQX works with a roster from any platform โ€” Yahoo, ESPN, Sleeper, CBS, a spreadsheet, or one you type by hand.

Installation โ€‹

ChirpIQX is available on npm as a public package.

bash
npm install @semanticintent/semantic-chirp-intelligence-mcp

Option B โ€” Clone and build from source โ€‹

bash
git clone https://github.com/semanticintent/semantic-chirp-intelligence-mcp.git
cd semantic-chirp-intelligence-mcp
npm install

3. Add to Claude Desktop โ€‹

Edit your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "chirp": {
      "command": "node",
      "args": ["/absolute/path/to/semantic-chirp-intelligence-mcp/build/index.js"]
    }
  }
}

No env block. There is nothing to configure.

4. Paste your roster โ€‹

Restart Claude Desktop, then tell it who is on your team:

"Set my roster:Auston MatthewsCale MakarIgor Shesterkin..."

Copy the rows straight out of your league page if you like โ€” tab-separated rows with lineup slots, MATTHEWS, Auston, numbered lists and bracketed positions all work. Names resolve against live NHL rosters, so club and position fill themselves in, including accents (Stutzle โ†’ Stรผtzle) and punctuation (J.T. Miller).

Anything that cannot be matched to exactly one NHL player is reported back with its candidates rather than guessed โ€” a roster silently holding the wrong player is worse than one that tells you it could not read a line.

5. Ask it something โ€‹

"Run ICE on my roster โ€” what should I actually do this week?""Which teams have the best schedule during my playoff weeks?""I'm on the clock at pick 47 โ€” who should I take?"

Claude Desktop Integration โ€‹

Configure Claude Desktop โ€‹

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

If you installed via npm:

json
{
  "mcpServers": {
    "chirp-intelligence": {
      "command": "node",
      "args": [
        "/absolute/path/to/node_modules/@semanticintent/semantic-chirp-intelligence-mcp/build/index.js"
      ],
      "env": {
        "YAHOO_CLIENT_ID": "your_client_id",
        "YAHOO_CLIENT_SECRET": "your_client_secret",
        "YAHOO_LEAGUE_ID": "your_league_id",
        "YAHOO_TEAM_ID": "your_team_id"
      }
    }
  }
}

If you cloned from source:

json
{
  "mcpServers": {
    "chirp-intelligence": {
      "command": "node",
      "args": [
        "/absolute/path/to/semantic-chirp-intelligence-mcp/build/index.js"
      ],
      "env": {
        "YAHOO_CLIENT_ID": "your_client_id",
        "YAHOO_CLIENT_SECRET": "your_client_secret",
        "YAHOO_LEAGUE_ID": "your_league_id",
        "YAHOO_TEAM_ID": "your_team_id"
      }
    }
  }
}

Use Absolute Paths

Make sure to use the absolute path to your build/index.js file, not a relative path.

Restart Claude Desktop โ€‹

Close and reopen Claude Desktop to load the MCP server.

Verify Installation โ€‹

In Claude Desktop, try asking:

Show me my fantasy hockey team roster

If everything is configured correctly, you should see your current roster with player stats!

Quick Test โ€‹

Test the MCP server directly:

bash
npm run start

This runs the server in standalone mode for testing.

Next Steps โ€‹

Troubleshooting โ€‹

MCP Server Not Loading โ€‹

  1. Check Claude Desktop logs for errors
  2. Verify absolute path in config is correct
  3. Ensure build/index.js exists (run npm run build)
  4. Restart Claude Desktop

A name did not resolve โ€‹

set_roster reports every line it could not match to exactly one NHL player. Ambiguous surnames come back with their candidates โ€” give a full name and re-run.

Tools say no roster has been provided โ€‹

Paste one first. show_stored_data shows what is currently stored, and can clear it.

Stats look like last season โ€‹

They are. Before opening night the current season has no statistics at all, so ChirpIQX uses the last completed season โ€” which is the right basis at a draft. Every response names the season it used.

Support โ€‹

Having issues?


Ready to dominate your league? Let's go! ๐Ÿ’