# Seovyn (remote · api.seovyn.com)

SEO content on Seovyn: keyword targets, articles, reviews, publishing and results.

- Trust score: 40/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- remote · `api.seovyn.com`: 40/100 (this document), [markdown](https://verifymcp.io/servers/pankaj-bit361-seovyn/api.md), [page](https://verifymcp.io/servers/pankaj-bit361-seovyn/api)

## Channel facts

- Endpoint: `https://api.seovyn.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Endpoint Security**: 11/100
  - TLS not yet verified: we couldn't open a connection to check the certificate.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS not yet verified: we couldn't read the response headers to check for it.
  - DNSSEC not yet verified: we couldn't validate it against a resolver.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but we couldn't connect to verify it.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Seovyn MCP server?

Seovyn is a hosted endpoint at https://api.seovyn.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http pankaj-bit361-seovyn 'https://api.seovyn.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "pankaj-bit361-seovyn": {
      "url": "https://api.seovyn.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pankaj-bit361-seovyn": {
      "type": "http",
      "url": "https://api.seovyn.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.pankaj-bit361-seovyn]
url = "https://api.seovyn.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pankaj-bit361-seovyn": {
      "type": "remote",
      "url": "https://api.seovyn.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pankaj-bit361-seovyn --url 'https://api.seovyn.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  pankaj-bit361-seovyn:
    url: "https://api.seovyn.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "pankaj-bit361-seovyn": {
      "Transport": "http",
      "Url": "https://api.seovyn.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add pankaj-bit361-seovyn -t streamable-http -u 'https://api.seovyn.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "pankaj-bit361-seovyn": {
      "type": "http",
      "url": "https://api.seovyn.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-23 (score 40, 0)

- [security regression] Endpoint reachability: behind authorisation → unreachable
- [security regression] Transport: unverified → fail
- [security regression] Authorization: pass → unverified
- [security regression] TLS certificate: pass → unverified
- [security regression] HSTS header: pass → unverified
- [security regression] DNSSEC: pass → unverified
- [security] Tool safety: Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- [functional] Tool coverage: Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- [functional] Capabilities: Capabilities not yet verified: we couldn't read the endpoint's capabilities.
- [functional] Schema quality: Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.

### 2026-10-19 (score 40, −36)

- [security regression] Endpoint reachability: reachable → behind authorisation
- [security regression] Tool safety: pass → unverified
- [security regression] Transport: pass → unverified
- [security] Authorization: The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-10-18 (score 76)

First indexed and scored.

## MCP tools (24)

### `seovyn_whoami` (~85 tokens)

Call this FIRST. Who this key acts as, whether it is an admin key, and the user's organizations (one per website: accountId, name, website, plan, supervised or autopilot, articles used this month). Tools that work inside an organization take `org` (its accountId, website or name); omitted, they use the user's current one.

### `seovyn_api_reference` (~71 tokens)

Every Seovyn API endpoint (method, path, what it does), read from the server's own routes. Use it with seovyn_api_request for anything the named tools don't cover. Filter with `search` (a word in the path or description).

Input parameters:

- `search` (string)

### `seovyn_api_request` (~177 tokens)

Call any Seovyn API endpoint as the user, in one organization (see seovyn_api_reference): { method, path like "/content/items/<itemId>", query?, body? }. GET runs at once; any other method returns a preview first and runs with confirm: true. The answer is the API's own status and data.

Input parameters:

- `body` (object)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `method` (string, required)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `path` (string, required): Starts with /, e.g. /content/brand.
- `query` (object)

### `seovyn_create_org` (~157 tokens)

A new organization for another website: { name, website }. Or, for a business with no website, { name, noWebsite: true, businessName, description } and Seovyn builds and hosts a site for it. Seovyn then reads the site and plans its first keywords. It becomes the user's current organization in the dashboard too. Can't be undone from here: needs confirm.

Input parameters:

- `businessName` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `description` (string)
- `name` (string, required)
- `noWebsite` (boolean)
- `website` (string): e.g. acme.com

### `seovyn_status` (~82 tokens)

How an organization stands: counts (sources, drafts waiting, published, approved, rejected), the plan and this month's usage (articles, section rewrites), and every publishing integration's state.

Input parameters:

- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_list_articles` (~124 tokens)

Articles, newest first: status "pending" (the review queue: drafts waiting, being written, failed), "approved" (published or on their way), "rejected", or "all". Each with its keyword, quality score, where it went live and its search performance.

Input parameters:

- `limit` (number): Default 30, at most 200.
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `status` (string)

### `seovyn_get_article` (~111 tokens)

One article in full: the body (Markdown), title, slug, meta title and description, tags, keyword, the research it was planned against, its quality verdict, and where it stands (and what autopilot would do with it).

Input parameters:

- `itemId` (string, required): An article id (from seovyn_list_articles).
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_write_article` (~146 tokens)

Write an article now on a topic, against 1-4 competitor pages it should beat ({ topic, competitorUrls, pageType? }). It uses one article of the month's allowance and lands in the review queue as a draft (a minute or two). Needs confirm.

Input parameters:

- `competitorUrls` (array, required)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `pageType` (string)
- `topic` (string, required)

### `seovyn_edit_article` (~163 tokens)

Edit a draft before it is approved (drafts only): title, summary, body (Markdown), slug, metaTitle (≤70), metaDescription (≤170), tags (≤6). The quality checks run again on the saved version.

Input parameters:

- `body` (string)
- `itemId` (string, required): An article id (from seovyn_list_articles).
- `metaDescription` (string)
- `metaTitle` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `slug` (string)
- `summary` (string)
- `tags` (array)
- `title` (string)

### `seovyn_rewrite_section` (~221 tokens)

Rewrite one section of a draft to an instruction ("add a worked example", "shorter, no jargon"). index is the section's place (0 = the opening before the first heading) and heading its heading as it is now (null for the opening). Returns the new section and the whole body WITHOUT saving: save it with seovyn_edit_article. Uses one of the plan's monthly section rewrites: needs confirm.

Input parameters:

- `body` (string): The body to work on, if it has unsaved edits. Default: the saved one.
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `heading` (string|null, required)
- `index` (number, required)
- `instruction` (string, required)
- `itemId` (string, required): An article id (from seovyn_list_articles).
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_review_article` (~228 tokens)

Decide on an article. decision "approve" (it publishes to the live site, now or at the publishing pace — needs confirm), "reject" (reason: inaccurate, off-brand, thin, duplicate, off-topic, bad-seo, other; note optional — Seovyn learns from it), "hold" (autopilot won't publish it on its own), "retry" (write a failed one again: uses one article of the month's allowance — needs confirm), "publish_refresh" (put the refreshed version waiting on a live article live — needs confirm) or "discard_refresh".

Input parameters:

- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `decision` (string, required)
- `itemId` (string, required): An article id (from seovyn_list_articles).
- `note` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `reason` (string)

### `seovyn_publish_queue` (~64 tokens)

Approved articles waiting their turn to go live (the publishing pace), with when each is due.

Input parameters:

- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_cleanup` (~184 tokens)

Live articles that need a decision (thin, overlapping or not earning). action "list" (default); "review" (look over the live articles now instead of waiting for the weekly pass); "decide" { itemId, decision: keep | unpublish | noindex } — unpublish takes the page down and noindex hides it from Google (Seovyn-hosted sites only): both need confirm.

Input parameters:

- `action` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `decision` (string)
- `itemId` (string): An article id (from seovyn_list_articles).
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_keyword_targets` (~117 tokens)

The keywords Seovyn writes for (each becomes an article): action "list" (default; with status open/written/skipped and where each came from), "add" { keyword, pageType? }, "remove" { keyword }.

Input parameters:

- `action` (string)
- `keyword` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `pageType` (string)

### `seovyn_topic_clusters` (~133 tokens)

Topic clusters (a pillar keyword and its supporting ones): action "list" (default), "plan" (plan more from the website now), "remove" { clusterId } (drops the cluster and its unwritten keywords — needs confirm).

Input parameters:

- `action` (string)
- `clusterId` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_sources` (~173 tokens)

Where Seovyn finds topics: action "list" (default), "add" { type: youtube | reddit | competitor, label, url, pageType? }, "discover" { sourceId } (look for new topics in it now), "remove" { sourceId } (needs confirm).

Input parameters:

- `action` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `label` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `pageType` (string)
- `sourceId` (string)
- `type` (string)
- `url` (string)

### `seovyn_competitor_pages` (~68 tokens)

Competitors' best pages by traffic, their sitemap sections, and whether this site covers each topic yet.

Input parameters:

- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_autopilot` (~225 tokens)

The autopilot. Seovyn starts supervised (you approve every article) and earns autopilot after a run of approvals; on autopilot it publishes good drafts on its own after a hold. action "status" (default): the mode, its last 20 decisions next to what autopilot would have done, recent autopilot events and the publishing pace; "set_pace" { maxArticlesPerDay: 1-36, or null for no pacing } — how many articles are written and go live a day; "turn_off": back to supervised (the approval streak starts again — needs confirm).

Input parameters:

- `action` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `limit` (number): Events to show. Default 20.
- `maxArticlesPerDay` (number|null)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_brand` (~253 tokens)

The brand profile every article is written to. action "get" (default); "update" with any of brandName, productOneLiner, audience, tone (practical | authoritative | friendly | technical), pointOfView (we | i | neutral), language, country (2 letters), authorName, ctaText, ctaUrl, bannedPhrases[], mustMention[]; "set_niche" { niche } (a sentence on what the site is about).

Input parameters:

- `action` (string)
- `audience` (string)
- `authorName` (string)
- `bannedPhrases` (array)
- `brandName` (string)
- `country` (string)
- `ctaText` (string)
- `ctaUrl` (string)
- `language` (string)
- `mustMention` (array)
- `niche` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `pointOfView` (string)
- `productOneLiner` (string)
- `tone` (string)

### `seovyn_knowledge` (~193 tokens)

What Seovyn knows first-hand about the business (facts read off the site, the owner's notes), which articles draw on. action "list" (default); "questions": what Seovyn would like the owner to answer; "answer" { questionId, answer, topic?, pageType? } (topic and pageType as the question gave them); "add_note" { text }; "remove" { factId }; "refresh": read the site again now.

Input parameters:

- `action` (string)
- `answer` (string)
- `factId` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `pageType` (string)
- `questionId` (string)
- `text` (string)
- `topic` (string)

### `seovyn_integrations` (~114 tokens)

Where articles are published (GitHub, WordPress, a CMS, a webhook or the Seovyn-hosted site) and each one's state, Google Search Console, and what the website is built on and the destination that fits it. Connecting one takes credentials: do it in the dashboard (Publishing), or with seovyn_api_request.

Input parameters:

- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_hosted_site` (~155 tokens)

The site Seovyn hosts for a business without its own website. action "get" (default): the site, its address and pages; "change" { instruction } rewrites its pages as asked ("add a pricing section to the home page") and puts them live — needs confirm; "enquiries": messages visitors sent through its contact form.

Input parameters:

- `action` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `instruction` (string)
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_results` (~78 tokens)

What the articles have earned: clicks, impressions and positions from Google Search Console, the best and rising articles, and how the site is doing since Seovyn started.

Input parameters:

- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.

### `seovyn_plan` (~158 tokens)

The organization's plan and billing. action "overview" (default): the plan, this period's usage, the next charge; "checkout" { plan: pro | scale }: a payment link for the user to open (nothing is charged until they pay); "change" { plan } for an organization already paying: shows what it charges now, and changes the plan with confirm.

Input parameters:

- `action` (string)
- `confirm` (boolean): Set to true only after the user has agreed to the preview this tool returned without it.
- `org` (string): Which organization: its accountId, website or name (seovyn_whoami lists them). Omitted: the user's current one.
- `plan` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/pankaj-bit361-seovyn/api#diagnostics

## Score history

- 2026-10-23: 40
- 2026-10-22: 40
- 2026-10-21: 40
- 2026-10-20: 40
- 2026-10-19: 40
- 2026-10-18: 76

## Common questions

### What is the Seovyn MCP server?

Seovyn is an MCP server listed in the public MCP registry as io.github.Pankaj-bit361/seovyn. SEO content on Seovyn: keyword targets, articles, reviews, publishing and results. This page covers its hosted endpoint (https://api.seovyn.com/mcp).

### Is the Seovyn MCP server safe to use?

Seovyn scores 40 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Seovyn MCP server expose?

Seovyn exposes 24 tools: seovyn_whoami, seovyn_api_reference, seovyn_api_request, seovyn_create_org, seovyn_status, and 19 more. Their descriptions and schemas cost roughly 3,480 tokens of context every time the server is loaded.

### Does the Seovyn MCP server require authentication?

Its publisher declares no required credentials for Seovyn. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Seovyn MCP server still maintained?

Seovyn is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 22 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.seovyn.com/mcp
- Repository: https://github.com/Pankaj-bit361/seovyn-mcp
- Website: https://www.seovyn.com/
- Changelog RSS feed: https://verifymcp.io/servers/pankaj-bit361-seovyn/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/pankaj-bit361-seovyn/api.json
- HTML version of this page: https://verifymcp.io/servers/pankaj-bit361-seovyn/api
