Skip to main content
Glama
Skywalker-Harrison

Soduku Solver MCP Server

sodukusolver MCP server

A MCP server project

Components

Resources

The server implements a simple note storage system with:

  • Custom note:// URI scheme for accessing individual notes

  • Each note resource has a name, description and text/plain mimetype

Prompts

The server provides a single prompt:

  • summarize-notes: Creates summaries of all stored notes

    • Optional "style" argument to control detail level (brief/detailed)

    • Generates prompt combining all current notes with style preference

Tools

The server implements one tool:

  • add-note: Adds a new note to the server

    • Takes "name" and "content" as required string arguments

    • Updates server state and notifies clients of resource changes

Related MCP server: RAGandLLM-MCP

Configuration

[TODO: Add configuration details specific to your implementation]

Quickstart

Install

Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

Development

Building and Publishing

To prepare the package for distribution:

  1. Sync dependencies and update lockfile:

uv sync
  1. Build package distributions:

uv build

This will create source and wheel distributions in the dist/ directory.

  1. Publish to PyPI:

uv publish

Note: You'll need to set PyPI credentials via environment variables or command flags:

  • Token: --token or UV_PUBLISH_TOKEN

  • Or username/password: --username/UV_PUBLISH_USERNAME and --password/UV_PUBLISH_PASSWORD

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory /Users/harrisonliang/research/fun/soduku run sodukusolver

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Available Tools

4 tools
add-noteC

Add a new note

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
contentYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
puzzleYesThe Sudoku puzzle in text format

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the puzzle to solve

TDQS

C2.6/5.0
Behavior2/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 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
puzzleYesThe Sudoku puzzle in text format

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updates
    • First observedadd-note
    • First observedadd-sudoku
    • First observedsolve-sudoku
    • First observedsolve-sudoku-text

TDQS

C2.9/5.0

Scored across 4 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness3/5

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A simple MCP server that implements a note storage system allowing users to add and summarize notes with customizable detail levels.
    3
    -
  • F
    license
    C
    quality
    D
    maintenance
    A simple MCP server that implements a note storage system with RAG capabilities, allowing users to store notes and generate summaries of stored content.
    3
    -
  • F
    license
    A
    quality
    D
    maintenance
    A 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.
    3
    1
    -