Skip to main content

MCP server for TuringMind cloud - provides type-safe tools for authentication, code reviews, and feedback

Project description

TuringMind MCP Server

PyPI version Python 3.10+ License: MIT

Model Context Protocol (MCP) server for TuringMind cloud integration. Provides type-safe tools for Claude to authenticate, upload code reviews, fetch repository context, and submit feedback.

Requires Python 3.10+ (MCP SDK requirement)

Why MCP?

Instead of Claude generating raw JSON and curl commands (which can fail silently due to field name mismatches or malformed data), MCP provides:

  • Type-safe tool definitions — Claude sees the exact schema
  • Validated input — Errors caught before sending
  • No endpoint guessing — Correct URLs hardcoded
  • Better error messages — Clear feedback on failures
  • Simplified login — Device code flow handled by the server

Installation

From PyPI

pip install turingmind-mcp

With pipx (recommended for CLI tools)

pipx install turingmind-mcp

From Source

git clone https://github.com/turingmindai/turingmind-mcp.git
cd turingmind-mcp
pip install -e .

Verify Installation

turingmind-mcp --help

Quick Start

Unified Setup (Recommended)

# Install
pip install turingmind-mcp

# Setup for your platform
turingmind setup claude_desktop  # Claude Desktop
turingmind setup cursor          # Cursor IDE/CLI
turingmind setup claude_cli      # Claude Code CLI

# Diagnose installation
turingmind diagnose

Platform-Specific Setup

TuringMind-MCP supports multiple platforms. Choose your platform:

Manual Setup (Claude Desktop Example)

  1. Configure Claude Desktop

Add to your Claude Desktop config file:

Platform Path
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json
Linux ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "turingmind": {
      "command": "turingmind-mcp"
    }
  }
}
  1. Restart Claude Desktop

  2. Login to TuringMind

In Claude, say: "Log me into TuringMind"

Claude will guide you through the device code flow.

Available Tools

Authentication

Tool Description
turingmind_initiate_login Start device code auth flow (no API key needed)
turingmind_poll_login Complete login and save API key
turingmind_validate_auth Check API key and account status

Code Review

Tool Description
turingmind_upload_review Upload review results to cloud
turingmind_get_context Get memory context for a repository
turingmind_submit_feedback Mark issues as fixed, dismissed, or false positive

Tool Reference

turingmind_initiate_login

Start device code authentication flow. No API key required.

Parameters: None

Returns:

  • verification_url — URL to open in browser
  • user_code — Code to enter when prompted
  • device_code — Use with turingmind_poll_login

turingmind_poll_login

Poll for authentication completion.

Parameters:

Name Type Required Description
device_code string Device code from turingmind_initiate_login

Returns:

  • On success: API key (automatically saved to ~/.turingmind/config)
  • On pending: Status message to wait and retry
  • On expired: Error message to restart flow

turingmind_validate_auth

Validate API key and get account info.

Parameters: None

Returns:

  • Tier (free, pro, team, enterprise)
  • Quota remaining
  • User ID

turingmind_upload_review

Upload code review results to TuringMind cloud.

Parameters:

Name Type Required Description
repo string Repository (owner/repo)
branch string Git branch name
commit string Git commit SHA
review_type "quick" | "deep" Review type (default: quick)
issues array List of issues found
raw_content string Full review as markdown
summary object {critical, high, medium, low} counts
files_reviewed array Files that were reviewed

Issue Schema:

{
  "title": "SQL Injection vulnerability",
  "severity": "critical",
  "category": "security",
  "file": "src/db.py",
  "line": 42,
  "description": "User input passed directly to query",
  "cwe": "CWE-89",
  "confidence": 95
}

turingmind_get_context

Get memory context for a repository.

Parameters:

Name Type Required Description
repo string Repository (owner/repo)

Returns:

  • Recent open issues
  • Hotspot files (frequent issues)
  • Team conventions
  • Known false positive patterns

turingmind_submit_feedback

Submit feedback on a code review issue.

Parameters:

Name Type Required Description
issue_id string Issue ID (e.g., iss_abc123)
action string One of: fixed, dismissed, false_positive
repo string Repository (owner/repo)
file string File path where issue was found
line integer Line number of the issue
pattern string For false_positive: pattern to skip in future
reason string Explanation for the feedback

Actions:

  • fixed — Issue was resolved (tracks time-to-fix metrics)
  • dismissed — Issue isn't important (lowers future priority)
  • false_positive — Not a real issue (adds pattern to memory)

Usage Examples

Login Flow

User: Log me into TuringMind

Claude: I'll start the authentication flow.

[Calls turingmind_initiate_login]

🧠 TuringMind Login Started

Step 1: Open this URL in your browser:
https://app.turingmind.ai/cli-auth?device_code=...

Step 2: Sign in with Google or GitHub

User: Done!

Claude: [Calls turingmind_poll_login with device_code]

✅ Login Successful!
API key has been saved to ~/.turingmind/config

Review with Upload

User: Review my code changes and upload to TuringMind

Claude: [Calls turingmind_validate_auth]
✅ TuringMind Authentication Valid
- Tier: team
- Quota: 495/500 reviews remaining

[Reviews code...]

[Calls turingmind_upload_review]
🧠 Review Uploaded to TuringMind
- Review ID: rev_abc123
- Issues: 3

False Positive Feedback

User: That SQL injection issue was a false positive, we use parameterized queries

Claude: [Calls turingmind_submit_feedback]
🚫 Feedback Submitted
Issue iss_abc123 has been marked as false positive.
Pattern saved: `db.query(sql, params)`
This pattern will be skipped in future reviews.

Configuration

Environment Variables

Variable Description Default
TURINGMIND_API_URL API server URL https://api.turingmind.ai
TURINGMIND_API_KEY API key Read from ~/.turingmind/config
TURINGMIND_DEBUG Enable debug logging 0

Config File

API credentials are stored in ~/.turingmind/config:

export TURINGMIND_API_KEY=tmk_your_key_here
export TURINGMIND_API_URL=https://api.turingmind.ai

Claude Desktop with Custom API URL

{
  "mcpServers": {
    "turingmind": {
      "command": "turingmind-mcp",
      "env": {
        "TURINGMIND_API_URL": "https://api.turingmind.ai"
      }
    }
  }
}

Development

Setup

git clone https://github.com/turingmindai/turingmind-mcp.git
cd turingmind-mcp
pip install -e ".[dev]"

Run Locally

python -m turingmind_mcp.server

Test with MCP Inspector

npx @modelcontextprotocol/inspector turingmind-mcp

Run Tests

pytest

Lint & Format

ruff check .
black .
mypy src/

Troubleshooting

"TURINGMIND_API_KEY not configured"

Run the login flow in Claude, or set the environment variable:

export TURINGMIND_API_KEY=tmk_your_key_here

"Permission Denied"

API key lacks required permission. Re-run login to create a new key with proper permissions.

"Connection Error"

  1. Check that TURINGMIND_API_URL is correct
  2. Verify network connectivity
  3. For local development, ensure backend is running

Claude doesn't see the tools

  1. Verify turingmind-mcp is in your PATH: which turingmind-mcp
  2. Check Claude Desktop config is valid JSON
  3. Restart Claude Desktop completely (Cmd+Q / close from tray)

License

MIT — see LICENSE for details.

Documentation

Getting Started

User Documentation

Developer Documentation

See Documentation Index for complete documentation structure.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turingmind_mcp-0.3.0.tar.gz (206.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turingmind_mcp-0.3.0-py3-none-any.whl (241.7 kB view details)

Uploaded Python 3

File details

Details for the file turingmind_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: turingmind_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 206.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for turingmind_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 95400bdddd497a164209835d2c7916576127cc87918e610dd270a03ed40167fd
MD5 c84ce5f60ab62204d769e2cf1b243b0d
BLAKE2b-256 379101b7a02fed4b413dad3b822d877e4de0388b5675bc7158f20f737ec1c89e

See more details on using hashes here.

Provenance

The following attestation bundles were made for turingmind_mcp-0.3.0.tar.gz:

Publisher: publish.yml on turingmindai/turingmind-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file turingmind_mcp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: turingmind_mcp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 241.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for turingmind_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f213cb1be46a8b236efba7f7850b39c9b42902d1e4291e6b7a1ef5d8a7c9db39
MD5 d2c5f375ba27aa52377573bd8372c03d
BLAKE2b-256 4247069b8987b9964c64c1a697831b9f6cd3a89644579f304226d25762eff791

See more details on using hashes here.

Provenance

The following attestation bundles were made for turingmind_mcp-0.3.0-py3-none-any.whl:

Publisher: publish.yml on turingmindai/turingmind-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page