Skip to main content
Glama
pleamo

pleamo

Official
by pleamo

pleamo MCP server

Exposes pleamo's AI scam/phishing URL checks as MCP tools, so any MCP client (Claude Desktop, Cursor, your own agent) can ask pleamo "is this link safe?" before opening or recommending it.

It's a thin, authenticated proxy to the hosted pleamo API — every check goes through the same per-user and global caps that protect the service.

Tools

Tool

What it does

check_url

Judge a URL: verdict (safe/suspicious/dangerous), severity, confidence, reason

report_false_positive

Flag a wrongly-blocked domain for review

get_status

Your plan + today's AI-check usage

Related MCP server: Malicious Scanner MCP Server

Setup

  1. Get a pleamo API key (a revocable key from the dashboard at https://dash.pleamo.app/keys).

  2. Point your MCP client at this server. For Claude Desktop, add to claude_desktop_config.json:

{
  "mcpServers": {
    "pleamo": {
      "command": "npx",
      "args": ["-y", "pleamo-mcp"],
      "env": {
        "PLEAMO_TOKEN": "your-api-key-here"
      }
    }
  }
}

Restart the client. You'll then be able to say things like "check this link with pleamo: https://paypa1-login.example" and the agent will call check_url.

Environment

Var

Default

Notes

PLEAMO_TOKEN

Required. Bearer token for the pleamo API.

PLEAMO_API_BASE

https://dash.pleamo.app

Override for local dev (e.g. http://localhost:4400).

Develop

npm install
npm run verify   # lint + format + unit tests
npm start        # runs the stdio server (expects an MCP client on stdin)

Quick stdio smoke test (lists the tools):

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  | node src/server.js

Remote (hosted) alternative

If your client supports remote MCP servers, you don't need this local process at all — connect straight to the hosted endpoint:

https://dash.pleamo.app/api/mcp

It speaks JSON-RPC over HTTP (same three tools) and authenticates with a pleamo API key as a Bearer token. Create a revocable key at https://dash.pleamo.app/keys. This local stdio server is for clients that only speak stdio (e.g. current Claude Desktop).

Notes

  • Auth / tokens — get a revocable API key from the dashboard (/keys) and set it as PLEAMO_TOKEN. (A raw session token also works, but keys are the right, revocable option.)

  • Transport — this package is stdio; the hosted /api/mcp above is the remote Streamable-HTTP variant.

  • The other MCP direction — letting the extension route checks through the user's own agent (BYO-via-MCP) is tracked alongside the extension source at pleamo/pleamo-chrome-extension.

Available Tools

3 tools
check_urlCheck a URL for scams / phishingA

Ask pleamo whether visiting a URL is likely a scam or phishing site. Returns a verdict (safe/suspicious/dangerous), severity, confidence, and a plain-English reason. Use before opening or recommending an unfamiliar link.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe full URL to check, e.g. https://example.com/login

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears the full burden. It discloses the return format: 'verdict (safe/suspicious/dangerous), severity, confidence, and a plain-English reason.' This covers the key behavioral aspects of a read-only analysis tool. However, it does not mention any limitations, latency, or side effects (though none are expected). Overall, it provides adequate behavioral context but not exhaustive.

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, front-loaded with the purpose and return details, followed by a concise usage recommendation. No redundant phrasing; every sentence adds value.

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 tool with one parameter, no output schema, and no annotations, the description covers purpose, usage, and return format. It does not explain edge cases (e.g., invalid URL) or interpret severity/confidence, but these are minor for a single-purpose checker. The description is complete enough for an agent to invoke correctly.

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 complete coverage (100%) for the single parameter 'url', with a clear description and an example. The tool description adds no additional meaning beyond the schema. Since baseline for high coverage is 3, this score 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 uses a specific verb ('Ask pleamo') and resource ('URL'), and explicitly states the tool's purpose: to determine if a URL is likely a scam or phishing site. It clearly distinguishes from siblings like report_false_positive and get_status by its focus on URL safety assessment.

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 explicit guidance on when to use the tool: 'Use before opening or recommending an unfamiliar link.' This gives clear context for usage. It does not explicitly mention alternatives or when not to use it, but the siblings are obviously different (report false positive, get status), so the guidance is sufficient.

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

get_statusGet pleamo plan + usageA

Return the signed-in account's plan and today's AI-check usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/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 clearly states that the operation returns data (plan and usage) and implies read-only behavior through the verb 'Return'. It also specifies the scope ('today's usage'), giving the agent a clear expectation. However, it does not disclose potential rate limits, error conditions, or authentication details beyond the implicit 'signed-in account' context.

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 a single, front-loaded sentence that states the purpose and scope immediately. There is no wasted verbiage or redundancy. Every word contributes to the meaning.

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 the low complexity (no parameters, no output schema, no annotations), the description fully covers what an agent needs to know: what the tool returns (plan and today's usage) and the implicit requirement of being signed in. The siblings are unrelated, so no extra context is necessary. It is complete for a simple status tool.

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 zero parameters, and the schema is empty. Per the rubric, a baseline of 4 is appropriate since there are no parameters to explain. The description adds no parameter information but doesn't need to, as none exist.

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 uses a clear verb ('Return') and identifies the exact resource ('signed-in account's plan and today's AI-check usage'). This unambiguously distinguishes it from siblings like check_url and report_false_positive, which serve very different purposes.

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 does not explicitly mention when to use this tool versus alternatives, nor does it provide any exclusions or conditions. It is a simple status query, so the context is implicit, but the lack of any sibling comparison or usage notes leaves this dimension at a basic level.

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

report_false_positiveReport a wrongly-flagged siteA

Tell pleamo a domain was flagged incorrectly, so it can be reviewed and corrected.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional context for the reviewer
domainYesThe domain that was wrongly flagged, e.g. example.com

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It discloses that the action is a submission for review and correction, implying it's non-destructive and asynchronous. However, it does not state what happens after submission (e.g., response, confirmation) or any side effects, leaving some ambiguity for a mutation-like action.

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?

One sentence carries the full purpose with no wasted words. It's front-loaded with the action and intent, making it easy to scan.

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 reporting tool with two parameters and no output schema, the description covers the essential context: what to report and why. It doesn't explain the return value or next steps, but these are not critical for a submission action.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description does not add semantic detail beyond what the schema provides, meeting the baseline for full 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 action ('tell pleamo a domain was flagged incorrectly') and the resource (domain), distinguishing it from siblings like check_url and get_status by its reporting intent. The title and description align without tautology.

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 gives clear context for when to use this tool (when a domain was wrongly flagged) and implies the expected outcome (review and correction). It does not explicitly name alternatives or exclusions, but the purpose is unambiguous enough to route an agent correctly.

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

Tool Schema Changelog

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

  1. 3 tool updatesv1.0.0
    • First observedcheck_url
    • First observedget_status
    • First observedreport_false_positive

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: check_url analyzes a URL, report_false_positive submits a correction, and get_status returns account information. There is no meaningful overlap or ambiguity among the three.

Naming Consistency5/5

All tool names follow the same verb_noun pattern using snake_case: check_url, report_false_positive, get_status. This makes the tool set predictable and easy to navigate.

Tool Count5/5

With only three tools, the server is tightly scoped to its purpose: URL safety checking, correction feedback, and account status. Each tool earns its place and the count is appropriate for such a focused service.

Completeness5/5

The tool set covers the core workflow: checking URLs, reporting incorrect verdicts, and checking usage/plan status. There are no obvious dead ends or missing operations for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Provides access to a malicious URL database API, enabling users to search, list, and retrieve information about potentially dangerous URLs for security analysis and threat detection.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Wraps the ScanMalware.com API to enable phishing triage, malware scanning, and certificate inspection through natural language, allowing users to submit scans, retrieve results, and analyze threats via MCP tools.
    Apache 2.0