# `io.github.JSONbored/heyclaude` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.JSONbored/heyclaude
- JSON: https://anlyon.dev/api/v1/servers/io.github.JSONbored/heyclaude
- Version: 0.4.0 (active)
- Publisher: io.github.JSONbored (GitHub account)
- Runs: remote (streamable-http), local (npm)
- Sign-in to list tools: none
- Repository: https://github.com/JSONbored/awesome-claude
- Metadata from the official MCP Registry, synced 2026-10-21T18:16:56.783Z

Title and description, as the publisher wrote them:

```untrusted-server-text
HeyClaude — Claude & AI workflow directory
Search the HeyClaude directory of Claude Code agents, MCP servers, skills, and tools.
```

Scanned 2026-10-21T19:03:26.539Z over streamable-http.

**28 tools: 11 change things and 17 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 11 | ask |
| Only reads | read | 17 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `registry.updates` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "registry.updates" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "registry.updates" says "update": a word for a change.
```

- **warn** Annotations that disagree with the tool in `install.setup` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "install.setup" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "install.setup" says "install": a word for a change.
```

- **warn** Annotations that disagree with the tool in `install.compatibility` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "install.compatibility" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "install.compatibility" says "install": a word for a change.
```

- **warn** Annotations that disagree with the tool in `install.guidance` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "install.guidance" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "install.guidance" says "install": a word for a change.
```

- **warn** Annotations that disagree with the tool in `install.adapter` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "install.adapter" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "install.adapter" says "install": a word for a change.
```


## Changes things (11)

Creates or changes something that can be changed back. Claude Code: ask.

### `entry.safety`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Review 1-5 HeyClaude entries for source, package, safety, and privacy metadata fit before install or recommendation. This is a metadata review only and does not provide malware scanning, automatic safety guarantees, or installation approval.
```

### `install.adapter`

- The name "install.adapter" says "install": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Fetch generated read-only platform adapter content, currently Cursor rule adapters for skill packages.
```

### `install.compatibility`

- The name "install.compatibility" says "install": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Fetch platform compatibility metadata for a HeyClaude skill entry.
```

### `install.guidance`

- The name "install.guidance" says "install": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Fetch read-only install, config, usage, and package guidance for a HeyClaude entry.
```

### `install.setup`

- The name "install.setup" says "install": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Fetch read-only MCP client setup snippets for Codex, Claude Desktop, Cursor, Windsurf, or remote HTTP clients.
```

### `registry.plan`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Plan a read-only Claude or Codex workflow toolbox from ranked HeyClaude registry entries. Each entry includes an inline install block (install command, config snippet, download URL) and the recommended stack is summarized as a copy-pasteable installPlan, alongside trust and follow-up guidance.
```

### `registry.recommend`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Answer 'what should I use to do X' in one call. Given a plain-language task (and optional platform/category), returns the best-match HeyClaude entries ranked by fit — each with why it fits, trust summary, disclosed safety/privacy notes, and an inline install block — plus a topPick and a consolidated installPlan. Unlike workflow.plan it does not force category diversity; it returns the genuinely best matches. Collapses the search → compare → detail → asset loop into a single answer-shaped response.
```

### `registry.updates`

- The name "registry.updates" says "update": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
List recently added or upstream-updated HeyClaude entries from generated registry metadata.
```

### `submission.prepare`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Build a read-only maintainer-reviewed HeyClaude submission draft with canonical PR text and URLs.
```

### `submission.review`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Review a HeyClaude submission draft locally for schema errors, duplicate risk, and maintainer checklist items without writing to GitHub.
```

### `submission.urls`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Build prefilled HeyClaude submit and review URLs for a validated PR-first submission draft without making write calls.
```

## Only reads (17)

Looks things up and changes nothing. Claude Code: allow.

### `entry.asset`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch the category-aware copy/install asset for a HeyClaude entry without writing local files. Pass assetType (e.g. 'install_command', 'config_snippet') to return only that asset and avoid the full_content/script payloads when you do not need them.
```

### `entry.compare`

- The name "entry.compare" says "compare": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Compare 2-5 read-only HeyClaude entries by fit, category, platforms, source metadata, and install complexity.
```

### `entry.coverage`

- The description's first verb is "compare": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Compare 2-5 HeyClaude entries side by side by how much trust metadata they disclose (source, package, safety, privacy, and review provenance) and rank them by deterministic signal coverage. This measures disclosed-metadata completeness only; it is not a malware scan, a safety verdict, or installation approval, and a higher score does not mean an entry is safe.
```

### `entry.detail`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch a read-only HeyClaude registry entry detail payload by category and slug. By default (bodyMode='excerpt') the body markdown is trimmed to a short lead and large copyable fields are omitted to conserve context, with bodyChars/bodyTruncated/omittedFields describing what was dropped; pass bodyMode='full' for the complete content or 'none' to drop the body entirely. Use entry.asset to retrieve omitted install/script content.
```

### `entry.related`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch read-only related HeyClaude entries based on category, tags, platforms, keywords, and source metadata.
```

### `entry.trust`

- The description's first verb is "explain": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Explain deterministic trust, source, package, safety, privacy, and review metadata signals for one HeyClaude entry. This is a metadata review only and does not provide malware scanning, automatic safety guarantees, or installation approval.
```

### `registry.feeds`

- The description's first verb is "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List read-only HeyClaude registry feeds, category feeds, platform feeds, and artifact locations.
```

### `registry.info`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch read-only HeyClaude MCP package, registry, tool, and public rate-limit metadata.
```

### `registry.list`

- The name "registry.list" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List read-only HeyClaude entries with bounded pagination and optional category, platform, tag, and query filters.
```

### `registry.search`

- The name "registry.search" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Search read-only HeyClaude registry entries by query, category, exact tag, and skill platform compatibility.
```

### `registry.stats`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch aggregate read-only registry stats, freshness, category counts, and real source-signal coverage.
```

### `submission.duplicates`

- The description's first verb is "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Search generated registry artifacts for likely duplicate entries before a user opens a submission PR.
```

### `submission.examples`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch read-only category examples and templates for faster, more accurate HeyClaude submissions.
```

### `submission.guidance`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch category-specific HeyClaude contribution guidance, required fields, and review expectations.
```

### `submission.policy`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch HeyClaude's read-only submission, artifact, import, and maintainer-review policy for contributors and agents.
```

### `submission.schema`

- The description's first verb is "fetch": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Fetch read-only HeyClaude submission schemas for PR-first intake by category.
```

### `submission.validate`

- The name "submission.validate" says "validate": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Validate a HeyClaude content submission draft locally without creating GitHub issues, pull requests, or publishing content.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `heyclaude`:

```json
{
  "permissions": {
    "allow": [
      "mcp__heyclaude__registry_search",
      "mcp__heyclaude__registry_info",
      "mcp__heyclaude__registry_list",
      "mcp__heyclaude__entry_related",
      "mcp__heyclaude__entry_detail",
      "mcp__heyclaude__entry_asset",
      "mcp__heyclaude__entry_compare",
      "mcp__heyclaude__registry_stats",
      "mcp__heyclaude__registry_feeds",
      "mcp__heyclaude__submission_schema",
      "mcp__heyclaude__submission_validate",
      "mcp__heyclaude__submission_duplicates",
      "mcp__heyclaude__submission_guidance",
      "mcp__heyclaude__submission_examples",
      "mcp__heyclaude__submission_policy",
      "mcp__heyclaude__entry_trust",
      "mcp__heyclaude__entry_coverage"
    ],
    "ask": [
      "mcp__heyclaude__registry_plan",
      "mcp__heyclaude__registry_recommend",
      "mcp__heyclaude__registry_updates",
      "mcp__heyclaude__install_setup",
      "mcp__heyclaude__install_compatibility",
      "mcp__heyclaude__install_guidance",
      "mcp__heyclaude__install_adapter",
      "mcp__heyclaude__submission_urls",
      "mcp__heyclaude__submission_prepare",
      "mcp__heyclaude__submission_review",
      "mcp__heyclaude__entry_safety"
    ],
    "deny": []
  }
}
```
