Skip to main content
Glama
gowinston-ai

winston-ai-mcp

Official
by gowinston-ai

Winston AI MCP Server ⚡️

npm version License: MIT Node.js CI TypeScript

Model Context Protocol (MCP) Server for Winston AI - the most accurate AI Detector. Detect AI-generated content, plagiarism, and compare texts with ease.

✨ Features

🔍 AI Text Detection

  • Human vs AI Classification: Determine if text was written by a human or AI

  • Confidence Scoring: Get percentage-based confidence scores

  • Sentence-level Analysis: Identify the most AI-like sentences in your text

  • Multi-language Support: Works with text in various languages

  • Credit cost: 1 credit per word

🖼️ AI Image Detection

  • Image Analysis: Detect AI-generated images using advanced ML models

  • Metadata Verification: Analyze image metadata and EXIF data

  • Watermark Detection: Identify AI watermarks and their issuers

  • Multiple Formats: Supports JPG, JPEG, PNG, and WEBP formats

  • Credit cost: 300 credits per image

📝 Plagiarism Detection

  • Internet-wide Scanning: Check against billions of web pages

  • Source Identification: Find and list original sources

  • Detailed Reports: Get comprehensive plagiarism analysis

  • Academic & Professional Use: Perfect for content verification

  • Credit cost: 2 credits per word

🔄 Text Comparison

  • Similarity Analysis: Compare two texts for similarities

  • Word-level Matching: Detailed breakdown of matching content

  • Percentage Scoring: Get precise similarity percentages

  • Bidirectional Analysis: Compare both directions

  • Credit cost: 1/2 credit per total words found in both texts

Related MCP server: Plagiarism Checker AI MCP

🚀 Quick Start

Prerequisites

🛠️ Development

Running with npx 🔋

env WINSTONAI_API_KEY=your-api-key npx -y winston-ai-mcp

Running the MCP Server locally via stdio 💻

Create a .env file in your project root:

WINSTONAI_API_KEY=your_actual_api_key_here
# Clone the repository
git clone https://github.com/gowinston-ai/winston-ai-mcp-server.git
cd winston-ai-mcp-server

# Install dependencies
npm install

# Build the project and start the server
npm run mcp-start

📦 Docker Support

Build and run with Docker:

# Build the image
docker build -t winston-ai-mcp .

# Run the container
docker run -e WINSTONAI_API_KEY=your_api_key winston-ai-mcp

📋 Available Scripts

  • npm run build - Compile TypeScript to JavaScript

  • npm start - Start the MCP server

  • npm run mcp-start - Compile TypeScript to JavaScript and Start the MCP server

  • npm run lint - Run ESLint for code quality

  • npm run format - Format code with Prettier

🔧 Configuration

For Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "winston-ai-mcp": {
      "command": "npx",
      "args": ["-y", "winston-ai-mcp"],
      "env": {
        "WINSTONAI_API_KEY": "your-api-key"
      }
    }
  }
}

For Cursor IDE

Add to your Cursor configuration:

{
  "mcpServers": {
    "winston-ai-mcp": {
      "command": "npx",
      "args": ["-y", "winston-ai-mcp"],
      "env": {
        "WINSTONAI_API_KEY": "your-api-key"
      }
    }
  }
}

Accessing the MCP Server via API 🌐

The server is at https://api.gowinston.ai/mcp/v1 over HTTPS Streamable HTTP (JSON responses). MCP clients (Cursor, MCP Inspector) should use that URL and transport. You can also call it with curl.

Authenticate with your Winston AI API key in the Authorization header as a Bearer token.

Example: List tools

curl --location 'https://api.gowinston.ai/mcp/v1' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "jsonrpc": "2.0",
  "method": "tools/list",
  "id": 1
}'

Example: AI Text Detection

curl --location 'https://api.gowinston.ai/mcp/v1' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--header 'Authorization: Bearer your-winston-ai-api-key' \
--data '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ai-text-detection",
    "arguments": {
      "text": "Your text to analyze (minimum 300 characters)"
    }
  }
}'

Example: AI Image Detection

curl --location 'https://api.gowinston.ai/mcp/v1' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--header 'Authorization: Bearer your-winston-ai-api-key' \
--data '{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "ai-image-detection",
    "arguments": {
      "url": "https://example.com/image.jpg"
    }
  }
}'

Example: Plagiarism Detection

curl --location 'https://api.gowinston.ai/mcp/v1' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--header 'Authorization: Bearer your-winston-ai-api-key' \
--data '{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "plagiarism-detection",
    "arguments": {
      "text": "Text to check for plagiarism (minimum 100 characters)"
    }
  }
}'

Note: Replace your-winston-ai-api-key in the Authorization header with your Winston AI API key. You can get one at https://dev.gowinston.ai.

📋 API Reference

AI Text Detection

{
  "text": "Your text to analyze (600+ characters recommended)",
  "file": "(optional) A file to scan. If you supply a file, the API will scan the content of the file. The file must be in plain .pdf, .doc or .docx format.",
  "website": "(optional) A website URL to scan. If you supply a website, the API will fetch the content of the website and scan it. The website must be publicly accessible."
}

AI Image Detection

{
  "url": "https://example.com/image.jpg"
}

Plagiarism Detection

{
  "text": "Text to check for plagiarism",
  "language": "en", // optional, default: "en"
  "country": "us"   // optional, default: "us"
}

Text Comparison

{
  "first_text": "First text to compare",
  "second_text": "Second text to compare"
}

🤝 Contributing

We welcome contributions!

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⭐ Support

If you find this project helpful, please give it a star on GitHub!


Made with ❤️ by the Winston AI Team

Available Tools

4 tools
ai-image-detectionAI Image DetectionA
Read-only

Detects AI content in a given image by verifying image metadata and using a machine learning system trained to differentiate between human and AI-generated images. Cost: 300 credits per image.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSpecifies the URL of the image to scan. The URL must be valid, publicly accessible, and point to an image in one of the following formats: JPG, JPEG, PNG, or WEBP. The image must have a minimum resolution of 256x256 pixels.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds transparency about the credit cost and the dual method (metadata + ML). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first explains the method and purpose, second states the cost. No unnecessary words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description could have clarified the return format (e.g., a score or label). The tool is simple, but missing output details slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a detailed description of the url parameter (format, constraints, resolution). The description adds no additional param-level information, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool detects AI content in images using metadata verification and machine learning. It is distinct from sibling tools like ai-text-detection which operate on text, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a credit cost (300 credits per image), guiding usage awareness. While it does not explicitly compare to siblings, the image focus clearly differentiates it from text-oriented tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai-text-detectionAI Text DetectionA
Read-only

Detects AI content in a given text to detect the likelihood of the text being written by an AI. Cost: 1 credit per word.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoA file to scan. If you supply a file, the API will scan the content of the file. The file must be in plain .pdf, .doc or .docx format. The file has priority over the text, so if you give a text and a file, it's the file that will be scanned.
textYesThe text to scan. Texts under 600 characters may produce unreliable results and should be avoided. Maximum 150 000 characters per request.
websiteNoA website URL to scan. If you supply a website, the API will fetch the content of the website and scan it. The website must be publicly accessible. It's important to know that the website has priority over the text and the file, so if you give a text, a file and a website, it's the website that will be scanned.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds cost per word (1 credit per word) beyond the annotations (readOnlyHint, openWorldHint). While annotations already cover safety, the cost is a behavioral trait. However, it does not discuss reliability thresholds or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence plus cost info) and front-loaded. The only minor waste is repetition of 'detect'. It is efficient but could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks return value details (e.g., score or percentage). With no output schema, the agent cannot infer what the tool returns. Also, the priority order among text/file/website is described in the schema but not in the description, which could be helpful. The cost is mentioned, but completeness is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions). The tool description adds no further meaning beyond the schema; the cost note applies to the tool overall, not specific parameters. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Detects AI content in a given text to detect the likelihood of the text being written by an AI.' It clearly distinguishes from siblings like ai-image-detection (image focus) and plagiarism-detection (plagiarism focus).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for text-based AI detection and mentions cost, but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like plagiarism-detection. No exclusions or selection criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plagiarism-detectionPlagiarism DetectionA
Read-only

Winston AI's plagiarism API is a powerful tool designed to check text for plagiarism by scouring the internet for similar content. It queries multiple websites and compares the input text with the content found on these websites. This can be particularly useful in academic settings, content creation, legal scenarios or any other situation where originality of content is required. Cost: 2 credits per word.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to be scanned. This is required unless you provide a website or file. Each request must contain at least 100 characters and no more than 120,000 characters.
countryNoThe country code of the country where the text was written. We accept all country codes. Default: us.us
languageNo2 letter language code. We accept all languages. Default: en.en

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotated with readOnlyHint and openWorldHint; description adds that it queries multiple websites and includes cost per word, providing useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and front-loaded, though some redundancy ('scouring the internet' and 'queries multiple websites').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Good overall, with schema and annotations covering most needs. Missing return format information, but not critical given other rich metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter descriptions; description does not add per-parameter details beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks text for plagiarism by scouring the internet. It distinguishes from siblings like ai-image-detection and text-compare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases (academic, content creation, legal) but does not mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text-compareText CompareA
Read-only

Compares two texts and returns the similarity score. Cost: 0.5 credit per total words found in both texts.

ParametersJSON Schema
NameRequiredDescriptionDefault
first_textYesThe first text to compare. Maximum 120,000 characters.
second_textYesThe second text to compare against the first text. Maximum 120,000 characters.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=true. The description adds behavioral context beyond annotations by explaining the cost model and that the tool computes a similarity score, which is consistent with read-only behavior. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no wasted words. Purpose is front-loaded in the first sentence, followed by cost information in the second.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with complete schema and annotations, the description covers purpose and cost. A minor gap is the lack of explanation about the similarity score range or scale, but it is not critical for use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters having clear descriptions in the schema. The tool description does not add additional semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Compares'), resource ('two texts'), and outcome ('returns the similarity score'). It distinguishes from sibling tools (detection-focused) by focusing on text comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a cost guideline ('Cost: 0.5 credit per total words'), which helps with usage decisions. However, it does not explicitly state when to use this tool over alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.11
    • First observedai-image-detection
    • First observedai-text-detection
    • First observedplagiarism-detection
    • First observedtext-compare

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinctly different function: image AI detection, text AI detection, plagiarism detection against the internet, and pairwise text comparison. There is no overlap or ambiguity.

Naming Consistency4/5

Three tools follow a consistent 'ai-*-detection' or 'plagiarism-detection' pattern, but 'text-compare' deviates by using 'compare' instead of 'detection' and omits the 'ai-' prefix.

Tool Count5/5

With 4 tools covering image and text AI detection, plagiarism, and comparison, the count is well-scoped for a focused content-authentication server.

Completeness4/5

The set covers primary detection needs (AI images, AI text, plagiarism) and adds comparison. Minor gaps like batch processing or document-level analysis exist but are not critical.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers