Skip to main content
Glama
omikirin

NINJAMCP

by omikirin

NINJAMCP

CryptoNinja のキャラクター設定・世界観を AI に提供する MCP(Model Context Protocol)サーバー です。

Claude Desktop / Claude Code などの MCP クライアントに接続すると、AI が CryptoNinja 全42キャラの公式設定や世界観を正確に参照しながら、二次創作の相談・ストーリー作成・設定確認などを手伝えるようになります。

提供ツール

ツール

説明

list_characters

全キャラクター一覧(クラン絞り込み対応:伊賀・甲賀・風魔・雑賀・天界・根の国)

get_character

名前(日本語/英語)または ID(#012 等)でキャラの完全な設定を取得

get_character_image

キャラの公式イラスト画像を取得(2D / 3D 切り替え可)

get_worldview

世界観(シーズン時系列・クラン相関・未確定設定メモなど)を取得

search_lore

キーワードで全設定テキストを横断全文検索

Related MCP server: Loreum MCP Server

セットアップ

npm install
npm run build

MCP クライアントへの登録

Claude Code

claude mcp add NINJAMCP -- node /path/to/MCP/dist/index.js

Claude Desktop(claude_desktop_config.json)

設定ファイルの場所:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "NINJAMCP": {
      "command": "node",
      "args": ["/path/to/MCP/dist/index.js"]
    }
  }
}

追記後、Claude Desktop を再起動すると 🔌 アイコンにツールが表示されます。

OpenAI Codex CLI(~/.codex/config.toml)

[mcp_servers.ninjamcp]
command = "node"
args = ["/path/to/MCP/dist/index.js"]

または CLI から:

codex mcp add ninjamcp -- node /path/to/MCP/dist/index.js

その他の MCP クライアント(Cursor / Windsurf など)

stdio トランスポート対応のクライアントなら同じ形式で登録できます。コマンドは共通で node /path/to/MCP/dist/index.js です。

/path/to/MCP は、このリポジトリを clone した実際のパスに置き換えてください。事前に npm install && npm run build が必要です。

リモートサーバー版(Cloudflare Workers)

worker/ ディレクトリに、同じ5ツールを HTTP で公開するリモート MCP サーバー(Streamable HTTP・依存ライブラリなし)が入っています。デプロイすると claude.ai の Web / スマホアプリや、URL 指定に対応した MCP クライアントから接続できます。

デプロイ

cd worker
npm install
npx wrangler login   # 初回のみ(Cloudflareアカウントが必要・無料枠でOK)
npx wrangler deploy

デプロイ後の MCP エンドポイントは https://ninjamcp.<your-subdomain>.workers.dev/mcp です。

リモート版への接続

claude.ai(Web / スマホ): 設定 → コネクタ → 「カスタムコネクタを追加」で上記 URL を登録。

Claude Code:

claude mcp add --transport http NINJAMCP https://ninjamcp.<your-subdomain>.workers.dev/mcp

Codex CLI(~/.codex/config.toml):

[mcp_servers.ninjamcp]
url = "https://ninjamcp.<your-subdomain>.workers.dev/mcp"

開発

npm run dev   # tsx で src/index.ts を直接実行

データは data/characters.json(キャラ設定)と data/worldview.json(世界観)にあり、編集すれば再ビルドなしで反映されます。

データ出典

CryptoNinja は Ninja DAO / イケハヤ氏によるNFTプロジェクトです。二次創作・商用利用の範囲は公式ガイドラインを確認してください。

Available Tools

2 tools
get_character_imageA

キャラクター名またはIDを指定して、そのキャラの公式イラスト画像を返す。styleで2Dイラスト版か3Dモデル版かを選べる。

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesキャラ名またはID。例: '咲耶' 'Shion' '#031'
styleNo画像スタイル。省略時は 2d(イラスト版)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It correctly identifies the tool as a read operation returning images, but does not mention authentication, rate limits, or side effects. Adequate but basic.

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?

Two sentences with no fluff. Purpose is front-loaded, and each sentence adds necessary information.

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

Completeness2/5

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

Lacks specification of the output format (e.g., URL, binary). Without an output schema, the description should clarify what the agent can expect as a return value.

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%, and the description reiterates parameter details (query as name/ID, style enum). It adds minimal extra value beyond the schema, meeting the baseline.

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 returns official illustrations for a character based on name or ID, with an option to choose 2D or 3D style. It effectively distinguishes from the sibling tool 'search_lore' by focusing on image retrieval.

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?

No explicit guidance on when to use this tool versus the sibling 'search_lore'. The description implies image retrieval vs text lore, but does not state conditions or exclusions.

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

search_loreA

キーワードでキャラ設定・世界観テキストを横断全文検索する。忍術名・武器・関係性・設定の断片から該当キャラや設定箇所を探すときに使う。

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes検索キーワード。例: '双子' '刀' '天狗'

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It describes the tool as a full-text search, which implies read-only behavior, but does not explicitly state side effects, auth requirements, or rate limits. Adequate but lacks detail.

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?

Two sentences conveying purpose, scope, and usage context without any fluff. Efficient and 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?

Single parameter, no output schema. Description explains what is searched and when to use. Missing details like result format, but sufficient for a simple search tool.

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% with a brief description. The tool description adds example keywords ('双子', '刀', '天狗') which provide concrete guidance beyond the schema. Baseline 3 is appropriate as schema already covers the parameter meaning.

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 clearly states the verb 'search' and the resource 'lore texts' (character settings and world-building). It specifies the use case of finding related characters or settings from fragments, and distinguishes from sibling tool 'get_character_image'.

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?

Description indicates when to use: searching for characters or settings from keywords like ninjutsu names, weapons, relationships. It does not explicitly state when not to use or mention alternatives, but the sibling tool context implies the distinction.

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. 2 tool updatesv1.0.0
    • First observedget_character_image
    • First observedsearch_lore

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one retrieves character images, the other searches lore text. No overlap or ambiguity.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern: 'get_character_image' and 'search_lore', making them predictable.

Tool Count2/5

With only 2 tools, the server feels very thin for its apparent scope (character and lore of a ninja universe). It lacks basic tools like listing characters or getting details, making the count too low.

Completeness2/5

The tool surface has significant gaps: there's no way to list available characters, retrieve character details beyond an image, or perform other common operations. The server is incomplete for its implied domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables writers and AI agents to preserve continuity in long-form fiction by maintaining a narrative knowledge graph and exposing MCP tools for querying outlines, entities, references, and consistency diagnostics.
    14
    MIT