Codegraphcontext vs Turnale

A side-by-side look at the Codegraphcontext and Turnale MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Codegraphcontext logoCodegraphcontextDeveloper Tools · Local subprocess (stdio)An MCP server that indexes local code into a graph database to provide context to AI assistants with a graphical code visualizations for humans.59GoodAuth: no auth requiredTurnale logoTurnaleSports · Remote HTTP/SSERun racket-sport tournaments from your AI assistant: fair draws, scores, live standings.67GreatAuth: no auth required

Verdict: choose Codegraphcontext for developer tools work as a local process; choose Turnale for sports over a hosted endpoint. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Codegraphcontext logoChoose Codegraphcontext when

  • You need dedicated capabilities in the Developer Tools domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
Explore Codegraphcontext

Turnale logoChoose Turnale when

  • You need dedicated capabilities in the Sports domain.
  • You prefer a remote HTTP/SSE transport.
  • Its auth model fits you: No auth required.
  • You want tools like ping, create_tournament, add_players.
Explore Turnale

Feature & specification comparison

Rows where the two servers differ are marked.

SpecCodegraphcontext logoCodegraphcontextTurnale logoTurnale
CategoryDeveloper ToolsSports
Quality signal59/100 · Good67/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Remote HTTP/SSE
AuthNo auth requiredNo auth required
PricingFreeNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars4,3520
Directory activity 5 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
ToolsNot listed30

Tools & capabilities

Codegraphcontext tools

No tool names declared yet. Check the project README from the listing page.

Turnale tools 30

  • pingHealth check. Returns a static confirmation that the Turnale MCP server is reachable.
  • create_tournamentCreate a new tournament. Keep setup SHORT: ask the organiser only for sport, players, court count and start time — sensible defaults cover everything else. FORMAT: never ask an open 'which format?' question. If the organiser clearly named one, pass it; otherwise omit format — the call then returns a ready-to-show menu of options (nothing is created) for you to relay so the organiser can read and choose in one reply. Players can be added later with add_players. NEVER invent placeholder or fake player names ('Player 1', made-up names): if the organiser only knows the headcount, create with signup_open: true and signup_cap set to it — players add themselves by name via the page link. If the organiser gives a time budget instead of rounds (e.g. 'we have 2 hours'), derive rounds ≈ total minutes ÷ (match + break minutes) and confirm. If they ask for a format that is not listed, offer to note it with record_feedback. Returns the organiser key (tk_…): relay it with the warning that it cannot be recovered, plus the shareable page link.
  • add_playersAdd players to the roster in bulk (parse pasted lists or spreadsheets yourself and send structured entries — never invent placeholder names; use signup mode when names aren't known yet). Duplicate names are rejected for disambiguation. If an unlocked draw exists it is regenerated automatically. Americano/mexicano take late arrivals even after results exist: americano rebuilds the rounds nobody has started, mexicano pairs them into the next round.
  • update_playerRename a player or set their gender/level/note. Updates MANY in one call: pass `updates` with one object per player and never loop one-by-one — setting levels for a whole roster used to be one call per player, which on a phone meant approving each one and left the roster half-updated when some were mis-tapped. The whole batch applies or none of it does.
  • remove_playerRemove one or MANY players before any result is recorded (afterwards use withdraw_player or replace_player) — pass player_names to clear several in one call, never loop one-by-one. Regenerates an existing unlocked draw.
  • set_pairsFix the doubles pairs: pass explicit pairs by name, or auto-pair (random or level-balanced). Only before results exist. Regenerates an existing unlocked draw.
  • update_settingsChange the tournament name, start time, match duration, break/changeover minutes, courts (count or names), house rules, or courtside score entry from the page. Court changes recompute the remaining schedule; played matches never move.
  • promote_playerMove a waitlisted player onto the active roster when a spot opens (signed-in players are notified by email). The cap can be raised with update_settings. Once results exist only americano/mexicano can take them — the unstarted rounds follow the roster.
  • generate_drawGenerate (or regenerate) the draw and schedule. This IS the start action: the first draw moves the tournament from setup to active and closes self-signup — when the organiser says "start the tournament", call this. The result includes rounds_text — SHOW it to the organiser as-is, in whatever language they are writing to you in (it is English already, so relay it unchanged unless they are writing something else) so they can check who plays whom — and the seed that produced the draw: preview first, then confirm with that SAME seed to apply exactly the previewed draw. Free until the first result is recorded; after that this DISCARDS recorded results and requires BOTH confirm: true and discard_results: true. If the organiser asks for a format that is not supported, offer to note it with record_feedback. Optional overrides adjust the format first.
  • get_briefingCompact full state of the tournament — settings, roster, progress, next matches, standings, page link. Call this first when resuming work in a new conversation with just the key.
  • list_playersFull roster with status, level, and doubles partner.
  • list_matchesMatches with sides, scores, courts and times. Filter by state or round; paginate with after_match_number for large tournaments.
  • +18 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Codegraphcontext

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "shashankss1205-codegraphcontext": {
      "command": "uvx",
      "args": [
        "kuzu"
      ]
    }
  }
}

Turnale

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "turnale-2": {
      "url": "https://mcp.turnale.app"
    }
  }
}

Frequently asked questions

Codegraphcontext is categorized under Developer Tools and uses a local stdio subprocess. Turnale belongs to Sports and uses a remote HTTP/SSE transport. Pick Codegraphcontext for developer tools work and Turnale for sports.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Codegraphcontext is listed as free. Auth: no auth required. Turnale has no declared pricing — check the project's own site. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add shashankss1205-codegraphcontext and turnale-2 as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Codegraphcontext has a quality signal of 59/100 (Good) with 5 views, 0 installs and 4,352 GitHub stars. Turnale has 67/100 (Great) with 1 views, 0 installs and 0 GitHub stars.