armavita-originality-ai-mcp
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.11mcp==1.26.0License: 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.txtRelated MCP server: originality-mcp
Run
bash ./run.shAlternative entrypoints:
python run.py
armavita-originality-ai-mcpRequired 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_urlRetrieval and account:
get_scan_results,credit_balance
Security
Never commit real
ORIGINALITY_API_KEYvalues.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.pyDocs
Scope
This repository is an OSS local MCP server.
Transport mode is local
stdioonly.
License
GNU Affero General Public License v3.0 (AGPLv3). See LICENSE.
Available Tools
8 toolscredit_balanceA
Check your Originality.ai credit balance. Returns remaining credits available for scanning. Use before batch operations to verify you have enough credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | The scan ID (returned as 'id' in the original scan response). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Plain text content to scan. Strip HTML/markdown for best accuracy. Minimum ~50 words for reliable results. | |
| title | No | Label for the scan (for reference in stored results). | AI Detection Scan |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Plain text content to scan. | |
| title | No | Label for the scan. | Full Content Audit |
| check_facts | No | Enable fact-checking (verifies claims against sources). Adds processing time. | |
| excluded_urls | No | URLs to exclude from plagiarism matching (e.g., your own site). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Plain text content to check for plagiarism. Strip HTML/markdown for best accuracy. | |
| title | No | Label for the scan (for reference in stored results). | Plagiarism Scan |
| excluded_urls | No | URLs to exclude from plagiarism matching (e.g., your own site). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Plain text content to analyze. | |
| title | No | Label for the scan. | Readability Scan |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Plain text content to analyze. | |
| keyword | Yes | Target keyword or phrase for SEO optimization. | |
| title | No | Label for the scan. | SEO Scan |
| device | No | Device type for ranking prediction. | desktop |
| publishing_domain | No | Your website URL for context (e.g., 'example.com'). Optional but improves accuracy. | |
| check_ai | No | Also run AI detection alongside SEO analysis. | |
| check_readability | No | Also run readability analysis alongside SEO. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of the page to scan (e.g., 'https://example.com/blog/article'). | |
| title | No | Label for the scan. | URL Scan |
| check_ai | No | Enable AI detection. | |
| check_plagiarism | No | Enable plagiarism checking. | |
| check_readability | No | Enable readability scoring. | |
| check_grammar | No | Enable grammar/spelling check. | |
| check_facts | No | Enable fact-checking. | |
| excluded_urls | No | URLs to exclude from plagiarism matching. |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
AlicenseAqualityAmaintenanceLocal-first MCP server for AI content governance. 13 tools for model/content management, validation, normalization, and i18n across any framework.224MIT- FlicenseAqualityCmaintenanceMCP server for Originality.ai that provides tools for AI detection, plagiarism checking, fact verification, readability analysis, grammar/spelling, and SEO optimization.52

winston-ai-mcpofficial
AlicenseAqualityAmaintenanceMCP server for Winston AI's detection tools, enabling AI content detection, plagiarism checking, image analysis, and text comparison.4608MIT- AlicenseNot gradedqualityCmaintenanceA filesystem-backed MCP server with REST API for AI tool integration and project workflow tracking. Zero database required.225MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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