Skip to main content
Glama
EfrainTorres

armavita-originality-ai-mcp

by EfrainTorres

armavita-originality-ai-mcp

armavita-originality-ai-mcp is a local-first MCP server for Originality.ai scanning workflows. It is built for local MCP clients (Claude Code, Cursor, Codex) and supports:

  • AI detection, plagiarism, readability, grammar, fact-checking, and SEO scans

  • stdio MCP transport only

  • Python >=3.11

  • mcp==1.26.0

  • License: AGPL-3.0-only

Current contract version: 2.0.0.

Install

Package install (enables the armavita-originality-ai-mcp CLI):

pip install -e .

Local launcher install (recommended for repo development):

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Related MCP server: originality-mcp

Run

bash ./run.sh

Alternative entrypoints:

python run.py
armavita-originality-ai-mcp

Required Environment Variable

  • ORIGINALITY_API_KEY: Originality.ai API key used for all API requests.

Quick MCP Client Config

Canonical server key and path:

{
  "mcpServers": {
    "armavita-originality-ai": {
      "command": "bash",
      "args": ["/absolute/path/to/armavita-originality-ai-mcp/run.sh"],
      "env": {
        "ORIGINALITY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Tool Coverage

  • Scanning: scan_ai, scan_full, scan_plagiarism, scan_readability, scan_seo, scan_url

  • Retrieval and account: get_scan_results, credit_balance

Security

  • Never commit real ORIGINALITY_API_KEY values.

  • Keep credentials in client/server env config, not in source files.

Development

Quick syntax check:

python -m py_compile run.py armavita_originality_ai_mcp/server.py armavita_originality_ai_mcp/client.py armavita_originality_ai_mcp/handlers/scan_handlers.py armavita_originality_ai_mcp/tools/scan_tools.py

Docs

Scope

  • This repository is an OSS local MCP server.

  • Transport mode is local stdio only.

License

GNU Affero General Public License v3.0 (AGPLv3). See LICENSE.

Available Tools

8 tools
credit_balanceA

Check your Originality.ai credit balance. Returns remaining credits available for scanning. Use before batch operations to verify you have enough credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool returns credit balance information, which implies a read-only operation, but doesn't explicitly mention if it requires authentication, has rate limits, or other behavioral traits. The description adds basic context but lacks comprehensive behavioral disclosure.

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 two sentences with zero waste: the first states the purpose and return value, the second provides usage guidance. It's front-loaded with essential information and efficiently structured without redundant or verbose language.

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?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is reasonably complete. It explains what the tool does, when to use it, and what it returns. However, without annotations or output schema, it could benefit from more detail on response format or error conditions, but it's adequate for this context.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%. The description doesn't need to explain parameters, so it appropriately focuses on purpose and usage. A baseline of 4 is applied as no parameters exist, and the description doesn't attempt to add unnecessary param details.

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 specific action ('Check your Originality.ai credit balance') and resource ('credit balance'), distinguishing it from sibling scanning tools. It explicitly mentions what the tool returns ('remaining credits available for scanning'), 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 Guidelines5/5

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

The description provides explicit usage guidance: 'Use before batch operations to verify you have enough credits.' This directly tells the agent when to invoke this tool versus proceeding with scanning operations, offering clear context for decision-making.

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

get_scan_resultsA

Retrieve previously stored scan results by scan ID. Use this to fetch full results for scans that were stored (storeScan=true), or to check on scans that may have been processing when originally submitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesThe scan ID (returned as 'id' in the original scan response).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about fetching stored results and checking processing status, which goes beyond the basic 'retrieve' action. However, it lacks details on error handling, response format, or performance characteristics (e.g., rate limits), leaving gaps for a mutation-free tool.

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 efficiently structured in two sentences: the first states the core purpose, and the second adds usage context. Every word earns its place without redundancy, and it's front-loaded with the primary function. This is a model of concise tool documentation.

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?

For a simple retrieval tool with one parameter and no output schema, the description is reasonably complete. It covers purpose and usage context adequately. However, without annotations or output schema, it could benefit from more behavioral details (e.g., what the results look like), keeping it at an adequate but not exceptional level.

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?

The input schema has 100% description coverage, with the scan_id parameter well-documented. The description adds marginal value by mentioning that scan_id comes from 'the original scan response' and relating it to stored/processing scans. This provides context but doesn't significantly enhance the schema's semantics, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Retrieve previously stored scan results by scan ID.' It specifies the verb ('retrieve') and resource ('scan results'), and distinguishes it from siblings by focusing on fetching stored results rather than performing new scans. However, it doesn't explicitly differentiate from all siblings (e.g., scan_url might also retrieve results), so it's not a perfect 5.

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 provides clear context on when to use this tool: for scans that were stored (storeScan=true) or to check on processing scans. It implies alternatives by referencing 'originally submitted' scans, suggesting other tools for initial scanning. However, it doesn't explicitly name when-not-to-use cases or list specific sibling alternatives, preventing a score of 5.

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

scan_aiA

Detect AI-generated content using Originality.ai. Returns an overall AI vs. Original percentage and a sentence-by-sentence breakdown with confidence scores. Use this after writing content to check AI detection scores before publishing. Costs ~1 credit per 100 words.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesPlain text content to scan. Strip HTML/markdown for best accuracy. Minimum ~50 words for reliable results.
titleNoLabel for the scan (for reference in stored results).AI Detection Scan

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and adds valuable behavioral context: it discloses the cost ('~1 credit per 100 words'), output format ('overall AI vs. Original percentage and sentence-by-sentence breakdown'), and accuracy considerations ('Strip HTML/markdown for best accuracy'), though it lacks details on rate limits or error handling.

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 appropriately sized and front-loaded, with three sentences that each add value: first states purpose, second gives usage guidance, third provides cost info, with zero redundant or wasted words.

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?

Given the tool's moderate complexity, no annotations, and no output schema, the description does well by explaining the return format and cost, but could be more complete by detailing error cases or linking to sibling tools like get_scan_results for follow-up actions.

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%, so the schema already documents both parameters thoroughly. The description adds minimal param-specific semantics beyond the schema, such as implying content length matters, but does not significantly enhance understanding of parameters.

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 specific action ('Detect AI-generated content using Originality.ai') and resource ('content'), distinguishing it from siblings like scan_plagiarism or scan_seo by focusing on AI detection rather than other content analysis types.

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?

It provides clear context on when to use ('after writing content to check AI detection scores before publishing'), but does not explicitly mention when not to use or name alternatives among siblings, leaving some ambiguity about tool selection.

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

scan_fullA

Run a comprehensive content audit: AI detection + plagiarism + readability + grammar/spelling + fact-checking. Returns all scores in one call. Plagiarism checks can take up to 60 seconds. Use for pre-publish content audits. Costs credits for each enabled check.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesPlain text content to scan.
titleNoLabel for the scan.Full Content Audit
check_factsNoEnable fact-checking (verifies claims against sources). Adds processing time.
excluded_urlsNoURLs to exclude from plagiarism matching (e.g., your own site).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does so effectively. It discloses critical behavioral traits: processing time ('up to 60 seconds'), cost ('Costs credits'), and the comprehensive nature of the audit. However, it doesn't mention error handling, rate limits, or authentication requirements, which would elevate it to a 5.

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 front-loaded with the core purpose, followed by key behavioral details (timing, usage, cost). Every sentence adds essential information—no wasted words. It's appropriately sized for a tool with multiple checks and parameters.

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?

Given the tool's complexity (multiple checks, 4 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, timing, and cost. However, without an output schema, it doesn't describe return values (e.g., score formats), leaving a minor gap that prevents a perfect score.

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%, so the baseline is 3. The description adds minimal parameter semantics beyond the schema—it implies that parameters enable specific checks (e.g., 'check_facts' for fact-checking) but doesn't elaborate on format or constraints. This meets the baseline without significant added value.

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 specific action ('Run a comprehensive content audit') and enumerates the exact checks performed (AI detection, plagiarism, readability, grammar/spelling, fact-checking). It distinguishes from siblings by emphasizing 'all scores in one call' versus specialized tools like scan_ai or scan_plagiarism.

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

Usage Guidelines5/5

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

Explicitly states when to use ('Use for pre-publish content audits') and provides clear alternatives by naming sibling tools (scan_ai, scan_plagiarism, etc.) that handle individual checks. It also specifies timing constraints ('Plagiarism checks can take up to 60 seconds') and cost implications ('Costs credits for each enabled check').

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

scan_plagiarismA

Check content for plagiarism only — no AI detection, readability, or grammar. Returns an overall plagiarism percentage and matched sources with URLs. Plagiarism checks can take up to 60 seconds. Use to verify content originality before publishing. Cheaper than scan_full since only plagiarism credits are used.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesPlain text content to check for plagiarism. Strip HTML/markdown for best accuracy.
titleNoLabel for the scan (for reference in stored results).Plagiarism Scan
excluded_urlsNoURLs to exclude from plagiarism matching (e.g., your own site).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it discloses the operation's purpose (plagiarism checking), the return format ('overall plagiarism percentage and matched sources with URLs'), performance characteristics ('can take up to 60 seconds'), and cost implications ('cheaper than scan_full'). However, it doesn't mention error handling, rate limits, or authentication requirements, which would be helpful for a complete behavioral picture.

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 efficiently structured with four sentences that each serve a distinct purpose: stating the tool's scope, describing outputs, noting performance characteristics, and providing usage/cost guidance. There's no redundant information, and key details are front-loaded appropriately.

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 tool with no annotations and no output schema, the description does well by explaining what the tool returns and its behavioral characteristics. However, it doesn't describe the exact structure of the returned data (e.g., format of 'matched sources'), error conditions, or authentication requirements, which would make it more complete for an agent's understanding.

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?

The schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.

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 specific verb ('check content for plagiarism') and resource ('content'), and explicitly distinguishes it from sibling tools by stating 'no AI detection, readability, or grammar' and comparing it to 'scan_full'. This provides precise differentiation from alternatives like scan_ai, scan_readability, and scan_full.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('to verify content originality before publishing') and when not to use it ('no AI detection, readability, or grammar'). It also names an alternative ('scan_full') and explains the trade-off ('cheaper than scan_full since only plagiarism credits are used'), giving clear context for selection among siblings.

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

scan_readabilityA

Analyze content readability and grammar only — no AI detection or plagiarism. Returns Flesch Reading Ease, grade level, sentence difficulty breakdown, and grammar/spelling errors with corrections. Fast and cheap. Use to check if content meets the 8th-9th grade reading level target.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesPlain text content to analyze.
titleNoLabel for the scan.Readability Scan

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it's a read-only analysis tool (implied by 'analyze' and 'returns'), mentions performance characteristics ('Fast and cheap'), and specifies what it returns (readability scores and grammar errors). However, it doesn't cover potential limitations like content length restrictions or error handling.

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 efficiently structured in three sentences that each serve distinct purposes: first states core functionality and exclusions, second details return values, third provides usage guidance and performance notes. Every sentence adds value with zero wasted words.

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 tool with no annotations and no output schema, the description does well by specifying what the tool returns and its behavioral characteristics. However, without an output schema, it could benefit from more detail about the return format structure. The description compensates reasonably but doesn't fully bridge the gap for a tool with multiple return metrics.

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%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain content format requirements or title usage). This meets the baseline for high schema coverage.

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 purpose with specific verbs ('analyze content readability and grammar') and resources ('content'), and distinguishes it from siblings by explicitly stating what it does NOT do ('no AI detection or plagiarism'). It also mentions the specific metrics returned (Flesch Reading Ease, grade level, etc.), making the purpose highly specific and differentiated.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool vs alternatives: it states 'no AI detection or plagiarism' (implying use scan_ai or scan_plagiarism for those), and gives a specific target use case ('Use to check if content meets the 8th-9th grade reading level target'). This clearly defines the tool's niche among the sibling tools.

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

scan_seoB

Run SEO content optimization analysis for a target keyword. Returns keyword seed recommendations with min/max/current density targets. Combine with AI detection and readability for a full content quality check. Currently supports United States only.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesPlain text content to analyze.
keywordYesTarget keyword or phrase for SEO optimization.
titleNoLabel for the scan.SEO Scan
deviceNoDevice type for ranking prediction.desktop
publishing_domainNoYour website URL for context (e.g., 'example.com'). Optional but improves accuracy.
check_aiNoAlso run AI detection alongside SEO analysis.
check_readabilityNoAlso run readability analysis alongside SEO.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns ('keyword seed recommendations with min/max/current density targets') and mentions geographical limitation ('Currently supports United States only'), which are useful behavioral traits. However, it doesn't disclose important aspects like rate limits, authentication requirements, error conditions, or whether this is a read-only vs. mutation operation. The description adds some value but leaves significant behavioral gaps.

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 appropriately sized at three sentences. It's front-loaded with the core purpose, followed by return value information, then usage context and limitations. Every sentence adds value: purpose statement, output specification, and operational constraints. There's no wasted verbiage or redundancy.

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?

Given the tool's complexity (7 parameters, no output schema, no annotations), the description provides basic purpose and output information but lacks important context. It doesn't explain the return format in detail (beyond mentioning 'keyword seed recommendations'), doesn't mention error handling, and doesn't provide guidance on interpreting the SEO analysis results. For a tool with no output schema and no annotations, more completeness would be expected to help an agent use it effectively.

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%, so the schema already documents all 7 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'AI detection and readability' which relates to the 'check_ai' and 'check_readability' parameters, but this doesn't provide additional semantic context beyond the schema's descriptions. With high schema coverage, the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Run SEO content optimization analysis for a target keyword' and specifies it 'Returns keyword seed recommendations with min/max/current density targets.' This is a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from sibling tools like 'scan_ai', 'scan_readability', or 'scan_full', which appear to be related content analysis tools.

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 provides some usage context: 'Combine with AI detection and readability for a full content quality check' and 'Currently supports United States only.' This implies when to use this tool (for SEO analysis) and mentions complementary tools. However, it doesn't explicitly state when NOT to use it or provide clear alternatives among the sibling tools (e.g., when to choose scan_seo vs scan_full vs scan_ai).

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

scan_urlA

Scan a published URL for AI content, plagiarism, readability, and grammar. Originality.ai fetches and extracts the page content automatically. Use to audit competitor content or verify published articles.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the page to scan (e.g., 'https://example.com/blog/article').
titleNoLabel for the scan.URL Scan
check_aiNoEnable AI detection.
check_plagiarismNoEnable plagiarism checking.
check_readabilityNoEnable readability scoring.
check_grammarNoEnable grammar/spelling check.
check_factsNoEnable fact-checking.
excluded_urlsNoURLs to exclude from plagiarism matching.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's core functionality and mentions automatic content fetching, but doesn't cover important behavioral aspects like rate limits, authentication requirements, processing time, or what happens when checks fail. The description doesn't contradict any 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?

The description is perfectly front-loaded with the core purpose in the first sentence, followed by supporting context. Every sentence adds value: the first defines the tool, the second explains the service mechanism, and the third provides usage scenarios. No wasted words or redundancy.

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?

For a tool with 8 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It covers the 'what' and 'why' well but lacks information about behavioral constraints, error conditions, and output format. The high schema coverage helps, but more behavioral context would be beneficial.

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%, providing comprehensive parameter documentation. The description doesn't add any parameter-specific information beyond what's in the schema, but establishes the overall purpose and context for the parameter set. With high schema coverage, the 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 clearly states the specific action ('Scan a published URL') and resources analyzed ('AI content, plagiarism, readability, and grammar'), distinguishing it from siblings like scan_ai or scan_plagiarism that focus on single aspects. It explicitly mentions the service provider (Originality.ai) and its automatic content extraction.

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 provides clear context for when to use this tool ('audit competitor content or verify published articles'), but doesn't explicitly state when not to use it or name specific alternatives among the sibling tools. It implies comprehensive scanning versus more targeted sibling tools.

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

TDQS

A4/5.0
Disambiguation4/5

Most tools have distinct purposes, such as credit_balance for account checks, get_scan_results for retrieval, and various scan_* tools for different content analyses (AI, plagiarism, readability, SEO, URL). However, scan_full overlaps with other scans by combining multiple checks, which could cause confusion when an agent needs a specific analysis like plagiarism alone versus the comprehensive option.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structures, such as credit_balance, get_scan_results, and scan_ai. The naming is predictable and readable, making it easy for agents to understand the action and target at a glance.

Tool Count5/5

With 8 tools, the server is well-scoped for content analysis and auditing, covering essential operations like balance checks, result retrieval, and various scanning types. Each tool serves a clear purpose without being overly broad or thin, fitting the domain effectively.

Completeness4/5

The tool set provides comprehensive coverage for content auditing, including AI detection, plagiarism, readability, SEO, and URL scanning, plus account management with credit_balance and result retrieval. A minor gap is the lack of a tool for managing scans (e.g., deleting or listing stored results), but agents can work around this with the existing tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EfrainTorres/armavita-originality-ai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server