# SEOPro AI (io.github.alpha-ai-labs/seo-agent): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.alpha-ai-labs%2Fseo-agent/versions/latest)
- Connected to: https://api.seoproai.co/api/mcp
- Repository: https://github.com/alpha-ai-labs/seoproai-mcp
- Scoring rules: v2
- Tools: 18
- Average: 39.1 / 100 (Rain)
- Near-identical pairs: 0

This page shows how SEOPro AI (io.github.alpha-ai-labs/seo-agent)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

No server-wide issues.

## Tools

- `get_indexing_status`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_keyword_plan`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_website_stats`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `check_ai_citations`: 35 / 100
  - Major: Arguments without a description: url.
  - Minor: String arguments with no constraint or example: url.
  - Minor: Says nothing about what it returns.
- `get_ai_search_traffic`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id, start_date, end_date, limit.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_article_status`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id, start_date, end_date.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_backlink_profile`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_search_performance`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id, start_date, end_date.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_top_search_keywords`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id, start_date, end_date, limit.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_search_trends`: 37 / 100
  - Major: Arguments without a description: website_id, months.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `list_articles`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id, status, limit.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `get_article`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: blog_id, include_content.
  - Minor: The meaning of the boolean argument include_content is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: blog_id. Name the tool or the place that returns it, or models look it up first.
- `generate_article`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: website_id, keyword, scheduled_date, topic.
  - Minor: String arguments with no constraint or example: keyword.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `request_indexing`: 40 / 100
  - Major: Arguments without a description: website_id, urls, confirm_indexing.
  - Minor: The meaning of the boolean argument confirm_indexing is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `run_seo_audit`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: url.
  - Minor: String arguments with no constraint or example: url.
- `generate_keyword_plan`: 45 / 100
  - Major: Arguments without a description: website_id, topic_instructions, primary_keywords, secondary_keywords, replace_existing, confirm_replace_existing.
  - Minor: The meaning of the boolean argument replace_existing is unclear.
  - Minor: The meaning of the boolean argument confirm_replace_existing is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: website_id. Name the tool or the place that returns it, or models look it up first.
- `publish_article`: 55 / 100
  - Major: Arguments without a description: blog_id, publish_as_draft, confirm_publish.
  - Minor: The meaning of the boolean argument publish_as_draft is unclear.
  - Minor: The meaning of the boolean argument confirm_publish is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: blog_id. Name the tool or the place that returns it, or models look it up first.
- `list_websites`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
