Skip to main content
Glama

Analook — Competitor Intelligence

Server Details

Competitor intelligence for AI agents — SEO, traffic, social, Product Hunt, pricing, AI insights.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Gingiris-1031/Competitor-analysis-tool
GitHub Stars
105
Server Listing
Analook

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 8 of 8 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: separate tools for submitting analysis, polling status, retrieving results in two formats, listing own reports, browsing public reports, and running/retrieving a different growth audit. No two tools overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., analyze_competitor, get_report_status, run_growth_audit). There are no deviations or mixed conventions.

Tool Count5/5

With 8 tools, the surface is well-scoped for a competitor intelligence service. It covers submission, polling, two retrieval formats, listing, browsing, and a separate audit workflow—no unnecessary clutter.

Completeness4/5

The tool set covers the full lifecycle for both analyses: submit, poll, retrieve, and list. The only minor gap is lack of a cancel/delete job tool, but this is not essential for the core workflow. Browsing public reports adds value.

Available Tools

8 tools
analyze_competitorAInspect

Submit a competitor analysis job.

Analyzes a competitor's website across 15+ data sources (SEO, traffic,
social, Product Hunt, GitHub, Wayback Machine history, AI-generated
insights, etc.) and returns a job_id. Use get_report_status(job_id) to
poll and get_report(job_id) to retrieve results when status='completed'.

Typical analysis takes 2-5 minutes. Requires authentication (deducts 1
credit from your Analook balance).

Args:
    url: Competitor website URL (e.g. 'https://linear.app' or 'lovable.dev')
    product_name: Optional product name override (defaults to domain)
    lang: Report language, 'en' (default) or 'zh' for Chinese output

Returns:
    {job_id: str, status: 'started', poll_url: str} on success
    {error: str, hint?: str} on auth/validation failure
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
langNo
product_nameNo
Behavior4/5

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

Since no annotations are provided, the description fully handles behavioral disclosure. It reveals the asynchronous nature, typical duration, authentication requirement, credit cost, success and error return formats. It could add rate limits or other side effects, but coverage is strong.

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 reasonably concise, front-loading the core action. The argument listing is clear though not strictly formatted. Every sentence adds value, but minor trim could improve readability.

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 complexity of an async job with polling, the description covers the flow, return types, and error handling. It references sibling tools for result retrieval. It could briefly mention how results are used later, but it's sufficiently complete for this tool's role.

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

Parameters5/5

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

Schema description coverage is 0%, yet the description provides thorough explanations for all three parameters: url with example, product_name as optional override, lang with default and options. This compensates well beyond the bare 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 submits a competitor analysis job, analyzes a website across many sources, returns a job_id, and instructs to use get_report_status and get_report for results. It distinguishes itself from sibling tools that are for retrieving or browsing reports.

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 explains when to use (to analyze a competitor website) and the follow-up polling process. It mentions authentication and credit deduction. However, it does not explicitly contrast with sibling tools like browse_public_reports or run_growth_audit, but the usage flow is clear.

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

browse_public_reportsAInspect

Browse Analook's public competitor-intelligence report gallery.

Returns recently published public reports (product name, domain, category,
and a link). No authentication or credits required — a fast way to discover
existing analyses before spending a credit on a fresh one.

Args:
    category: Optional filter, e.g. 'AI / Agents', 'Dev Tools',
              'Crypto / Web3', 'Marketing / SEO', 'SaaS / Other'
ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo
Behavior3/5

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

No annotations provided. Description mentions no auth/credits required and returns specific fields, but does not disclose pagination, rate limits, or behavior with invalid category. Moderate 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.

Conciseness4/5

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

Description is concise (two short paragraphs) and clearly structured with main purpose followed by parameter details. Could be more front-loaded, but overall efficient.

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 no output schema, description adequately hints at return fields (product name, domain, category, link). For a simple browse tool with one optional param, it's sufficiently complete.

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?

Single parameter 'category' with examples like 'AI / Agents', 'Dev Tools'. Schema has 0% description coverage, but the tool description lists example values, adding useful context beyond the 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?

Clearly states it browses a public report gallery, listing recently published reports with product name, domain, category, and link. Distinguishes from siblings like get_report (specific report) and analyze_competitor (generate analysis).

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?

Explicitly says it's a fast way to discover existing analyses before spending a credit on a fresh one, implying use before creating new reports. Does not explicitly exclude cases, but context helps.

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

get_growth_auditAInspect

Fetch a Growth Audit's three reports (Executive Summary, Diagnosis, Action Plan) as Markdown.

Args:
    job_id: ID from run_growth_audit() (starts with 'ga-')

Returns:
    {status, reports: {executive_summary, diagnosis_report, action_plan}}
    while running, only {status, progress} is returned.
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
Behavior4/5

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

In absence of annotations, description discloses that while running only status+progress is returned, and lists three reports upon completion. No destructive behavior implied, but no mention of error states or rate limits.

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?

Concise three sections (summary, Args, Returns). Every sentence adds value. No unnecessary 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 simple fetch with one parameter and no output schema, description covers purpose, usage, return format, and status during execution. Could mention polling behavior or error codes but sufficient.

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?

Only one parameter (job_id). Schema has no description; description adds meaning: 'ID from run_growth_audit() (starts with 'ga-')'. This clarifies expected format and source.

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?

Description explicitly states 'Fetch a Growth Audit's three reports... as Markdown', clearly identifying verb+resource. Differentiates from siblings like run_growth_audit and get_report.

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?

Provides explicit guidance: job_id comes from run_growth_audit() and starts with 'ga-'. Also explains return behavior during execution (only progress returned), telling when the tool is appropriate.

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

get_reportAInspect

Fetch the full competitor analysis report as structured JSON.

Reports contain: website snapshot, Wayback Machine history, SEO/traffic
data (DataForSEO), social media presence, Product Hunt launches, GitHub
stats, pricing, funding, AI-generated business insights, growth
playbooks, and more.

Args:
    job_id: ID from analyze_competitor(); status must be 'completed'

Returns:
    The full report dict (nested structure), or {error} if not found / not ready.
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
Behavior4/5

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

With no annotations, the description fully bears the weight of behavioral disclosure. It transparently describes the return structure ('full report dict (nested structure), or {error} if not found / not ready'), which covers key error scenarios. No destructive or rate-limiting traits are relevant for a fetch operation.

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 concise: a one-sentence purpose followed by a bullet-like list of report contents, then clear 'Args' and 'Returns' sections. Every sentence adds value with zero redundancy.

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 a single simple parameter, no output schema, and no annotations, the description provides a thorough list of report contents and return types. It lacks details on potential size limits or nesting depth, but for a report retrieval tool this is sufficient.

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

Parameters5/5

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

The schema defines 'job_id' with only a title 'Job Id', covering 0% of semantic meaning. The description compensates perfectly by specifying the source ('ID from analyze_competitor()') and a precondition ('status must be 'completed''), adding crucial context the schema alone lacks.

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 'Fetch the full competitor analysis report as structured JSON' and lists specific data categories (website snapshot, Wayback Machine history, SEO/traffic data, etc.), making the tool's purpose highly specific and distinct from siblings like 'get_report_status' or 'get_report_markdown'.

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 explicitly states the prerequisite 'job_id: ID from analyze_competitor(); status must be 'completed'', providing clear when-to-use guidance. However, it does not mention when not to use this tool or suggest alternatives, missing an opportunity for full usage context.

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

get_report_markdownAInspect

Fetch the competitor analysis report as human-readable Markdown.

Suitable for piping into agents that prefer text over structured JSON,
or for direct display to end users.

Args:
    job_id: ID from analyze_competitor(); status must be 'completed'

Returns:
    {markdown: str} or {error: str}
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
Behavior3/5

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

No annotations provided. Description indicates a read operation (fetch) and return type. Could mention non-destructive nature or rate limits, but adequate for a simple fetch.

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?

Concise: one sentence for purpose, one for use case, then args/returns. No unnecessary words. Front-loaded.

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 one parameter, no output schema, and no annotations, the description covers purpose, usage, parameter meaning, and return format. Error handling implied but not detailed.

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?

Despite 0% schema description coverage, the description fully explains job_id: provenance (from analyze_competitor()) and precondition (status must be 'completed').

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 verb 'Fetch', resource 'competitor analysis report', and format 'human-readable Markdown'. It distinguishes from likely JSON sibling tools.

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?

Describes suitability: text-pipe or display. Specifies prerequisite: job_id from analyze_competitor() and status 'completed'. Does not explicitly exclude other contexts but implies it.

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

get_report_statusAInspect

Poll an analysis job's status.

Args:
    job_id: ID returned from analyze_competitor()

Returns:
    {status: 'running'|'completed'|'failed', progress?: str, report_url?: str}
ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
Behavior3/5

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

With no annotations, the description carries full burden. It details the return type ({status, progress, report_url}) but does not discuss side effects, idempotency, or rate limits. The polling nature is implied but not explicitly stated.

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 concise with minimal lines. It includes Args/Returns structure without fluff, making it easy to read.

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 1-parameter tool with no output schema, the description provides the return format and usage context. Missing details like error handling or timeout, but overall sufficient.

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?

Despite 0% schema description coverage, the description adds meaning by specifying that job_id is the ID returned from analyze_competitor(). This links the parameter to a parent tool, adding value beyond the 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 'Poll an analysis job's status,' which is a specific verb and resource. It distinguishes itself from sibling tools like get_report or browse_public_reports by explicitly linking job_id to analyze_competitor().

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 tells when to use this tool: after calling analyze_competitor() to get job_id. It does not explicitly state when not to use it or mention alternatives, but the context is clear.

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

list_my_reportsAInspect

List your recent competitor analysis reports (up to 50).

Requires authentication. Returns a lightweight list (id, url,
product_name, created_at, status) — use get_report(job_id) to fetch
the full report for any of them.

Returns:
    {reports: [{id, url, product_name, created_at, status}, ...]}
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Discloses authentication needed, return fields (id, url, product_name, created_at, status), and the 50-report limit. No annotations exist, so description carries burden; it covers key behaviors.

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?

Compact three-sentence description with a structured Returns section, no redundant text, front-loaded with main purpose.

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

Completeness5/5

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

Given zero parameters and no output schema, the description fully explains what the tool returns and how to proceed for details, making it self-sufficient.

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?

No parameters, so schema coverage is trivial. Description adds value by detailing output fields, meeting baseline for parameterless tools.

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 'List your recent competitor analysis reports (up to 50)', specifying the verb (list), resource (reports), and limit, clearly distinguishing it from siblings like get_report.

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 clear guidance to use get_report for full report details, implies authentication requirement, but does not explicitly exclude scenarios.

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

run_growth_auditAInspect

Run a full Growth Audit — three linked strategic reports for a product.

Unlike analyze_competitor (a single 15-signal intelligence snapshot), a
Growth Audit produces an Executive Summary + a Diagnosis Report + a 30-day
Action Plan, grounded in real channel/tactic playbooks. Best for 'how do I
grow THIS product' rather than 'what is this competitor doing'.

Takes ~4-6 minutes. Requires authentication and deducts 10 credits. Poll
with get_growth_audit(job_id) until status='completed'.

Args:
    url: Product website URL to audit
    product_name: Optional product name override (defaults to domain)
    lang: Report language, 'en' (default) or 'zh'
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
langNo
product_nameNo
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: takes 4-6 minutes, requires authentication, deducts 10 credits, and is asynchronous (poll with get_growth_audit). This is excellent transparency.

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 well-structured: starts with the main purpose, contrasts with sibling, states time/credits, then lists parameters. Every sentence is valuable and concise.

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

Completeness5/5

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

Despite no output schema, the description covers what the tool produces (three reports), its async nature, and how to retrieve results (poll with get_growth_audit). This is complete given the complexity.

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

Parameters5/5

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

Schema description coverage is 0%, but the description explains each parameter: url as product website URL, product_name as optional override defaulting to domain, lang as 'en' or 'zh' with default 'en'. This adds complete meaning beyond the 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 it runs a full Growth Audit producing three reports. It contrasts with sibling tool analyze_competitor, which is a single snapshot, making the purpose distinct.

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 explicitly says 'Best for how do I grow THIS product rather than what is this competitor doing', providing context for when to use. While it doesn't explicitly say when not to use, the contrast with analyze_competitor serves as guidance.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Give your AI agent access to 8,400+ software tools — search, compare, get pricing, find alternatives, and discover the best tool for any use case.
    Last updated
    20
    2
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.