Soduku Solver MCP Server
ソデュクソルバーMCPサーバー
MCP サーバー プロジェクト
コンポーネント
リソース
サーバーは、次の機能を備えたシンプルなメモ保存システムを実装します。
個々のノートにアクセスするためのカスタム note:// URI スキーム
各ノートリソースには、名前、説明、text/plain mimetype があります。
プロンプト
サーバーは単一のプロンプトを提供します:
要約ノート: 保存されているすべてのノートの要約を作成します
詳細レベル(簡潔/詳細)を制御するためのオプションの「スタイル」引数
現在のすべてのメモをスタイルの好みに合わせて組み合わせたプロンプトを生成します
ツール
サーバーは 1 つのツールを実装します。
add-note: サーバーに新しいメモを追加します
必須の文字列引数として「name」と「content」を取ります
サーバーの状態を更新し、リソースの変更をクライアントに通知します
Related MCP server: RAGandLLM-MCP
構成
[TODO: 実装に固有の構成の詳細を追加する]
クイックスタート
インストール
クロードデスクトップ
MacOS の場合: ~/Library/Application\ Support/Claude/claude_desktop_config.json Windows の場合: %APPDATA%/Claude/claude_desktop_config.json
発達
建築と出版
配布用のパッケージを準備するには:
依存関係を同期し、ロックファイルを更新します。
uv syncパッケージディストリビューションをビルドします。
uv buildこれにより、 dist/ディレクトリにソースとホイールのディストリビューションが作成されます。
PyPI に公開:
uv publish注: 環境変数またはコマンド フラグを使用して PyPI 資格情報を設定する必要があります。
トークン:
--tokenまたはUV_PUBLISH_TOKENまたはユーザー名/パスワード:
--username/UV_PUBLISH_USERNAMEおよび--password/UV_PUBLISH_PASSWORD
デバッグ
MCPサーバーはstdio経由で実行されるため、デバッグが困難になる場合があります。最適なデバッグ環境を実現するには、 MCP Inspectorの使用を強くお勧めします。
次のコマンドを使用して、 npm経由で MCP Inspector を起動できます。
npx @modelcontextprotocol/inspector uv --directory /Users/harrisonliang/research/fun/soduku run sodukusolver起動すると、ブラウザでアクセスしてデバッグを開始できる URL がインスペクタに表示されます。
Available Tools
4 toolsadd-noteC
Add a new note
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Add a new note' and provides no details on side effects, permissions, return values, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, making it concise and front-loaded. However, it is under-specified for the tool's complexity, though this is largely a completeness issue rather than a conciseness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and parameter descriptions, a five-word description is insufficient for an agent to invoke the tool correctly. The meaning of the parameters and expected return behavior remain ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage for the two required parameters ('name' and 'content'), and the description does not explain their meaning or format. The agent cannot infer what 'name' or 'content' represent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and a specific resource ('note'), clearly stating the tool's function. It differentiates itself from the sibling 'get_report', which is a read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only states the action without any context about when to invoke it or when to choose a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add-sudokuC
Add a new Sudoku puzzle
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| puzzle | Yes | The Sudoku puzzle in text format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('Add') without disclosing behavioral traits. It doesn't mention whether this is a write operation, what permissions are needed, how errors are handled, or what happens on success, leaving critical behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words, making it easy to parse and front-loaded with the core action. It appropriately sized for a simple tool without over-explaining.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and incomplete schema coverage (50%), the description is inadequate. It doesn't compensate for the lack of structured data by explaining what the tool returns, error conditions, or behavioral context, leaving significant gaps for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'puzzle' has a description), and the description adds no parameter details beyond what the schema provides. It implies parameters for name and puzzle but doesn't explain their semantics, formats, or constraints, resulting in minimal added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('a new Sudoku puzzle'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'add-note' or 'solve-sudoku', but the specific mention of 'Sudoku puzzle' provides adequate clarity for the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'solve-sudoku' or 'add-note'. The description lacks context about prerequisites, such as whether this is for creating puzzles versus solving them, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solve-sudokuC
Solve a Sudoku puzzle
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the puzzle to solve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool solves puzzles but does not describe how (e.g., algorithm, constraints), what happens on success/failure, or any side effects (e.g., whether it modifies stored data). This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it front-loaded and easy to parse. However, it is overly concise, bordering on under-specification, as it omits necessary context for effective use, slightly reducing its utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (solving a puzzle), lack of annotations, no output schema, and incomplete behavioral transparency, the description is insufficient. It does not explain what the tool returns (e.g., solved puzzle, success status) or how it interacts with siblings, leaving the agent with incomplete information for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'name' documented as 'Name of the puzzle to solve'. The description does not add meaning beyond this, such as explaining name format or referencing sibling tools. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Solve a Sudoku puzzle' clearly states the action (solve) and resource (Sudoku puzzle), making the purpose understandable. However, it lacks specificity about what constitutes a puzzle (e.g., a stored puzzle by name) and does not differentiate from sibling tools like 'solve-sudoku-text', leaving room for ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., needing a puzzle stored via 'add-sudoku'), exclusions, or comparisons to siblings like 'solve-sudoku-text', leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solve-sudoku-textC
Solve a Sudoku puzzle from text input
| Name | Required | Description | Default |
|---|---|---|---|
| puzzle | Yes | The Sudoku puzzle in text format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'solve' implies a computational operation, the description doesn't reveal any behavioral traits such as computational complexity, timeout risks, error handling, or what happens with invalid input. This leaves significant gaps for an agent to understand how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (just 6 words) and front-loaded with the core purpose. Every word earns its place, with no wasted verbiage or structural issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the computational nature of Sudoku solving (which can involve complex algorithms and potential failures), the description is insufficient. With no annotations, no output schema, and minimal behavioral disclosure, an agent lacks crucial context about what the tool returns, how it handles edge cases, or what constitutes valid input beyond the basic parameter documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'puzzle' clearly documented in the schema. The description adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline for adequate but unenhanced parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('solve') and resource ('Sudoku puzzle from text input'), making it immediately understandable. However, it doesn't distinguish this tool from its sibling 'solve-sudoku', leaving some ambiguity about when to use each variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With a sibling tool named 'solve-sudoku' (without the '-text' suffix), there's clear ambiguity about which tool to choose for different scenarios, but the description offers no clarification.
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.
4 tool updates
- First observed
add-note - First observed
add-sudoku - First observed
solve-sudoku - First observed
solve-sudoku-text
TDQS
Scored across 4 tools
There is significant overlap between 'solve-sudoku' and 'solve-sudoku-text' as both solve puzzles, though the input method differs. 'add-note' and 'add-sudoku' are distinct, but the overall set has ambiguity in solving tools that could cause misselection.
Tools follow a consistent verb-noun pattern with hyphens (e.g., add-note, solve-sudoku). All names are clear and readable, with only minor deviation in 'solve-sudoku-text' being slightly longer but still adhering to the pattern.
Four tools are reasonable for a Sudoku solver server, covering core operations like adding puzzles and solving. It's slightly thin but functional, with no obvious bloat or extreme mismatch for the domain.
The server covers adding and solving puzzles, but lacks operations for managing or viewing existing puzzles (e.g., list, update, delete). This creates notable gaps that agents might need to work around, though basic solving workflows are supported.
Related MCP Connectors
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
An MCP server that used to create notes
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceA simple MCP server that implements a note storage system allowing users to add and summarize notes with customizable detail levels.3-
- FlicenseCqualityDmaintenanceA simple MCP server that implements a note storage system with RAG capabilities, allowing users to store notes and generate summaries of stored content.3-
- FlicenseAqualityDmaintenanceA minimal MCP server demonstrating tools, resources, and prompts for managing notes, with a simple notes app that supports adding, listing, deleting notes and summarizing them.31-
- FlicenseCqualityDmaintenanceA simple note-taking MCP server that allows adding notes and summarizing them via a prompt.2-