Soduku Solver MCP Server
sodukusolver MCP 서버
MCP 서버 프로젝트
구성 요소
자원
서버는 다음을 사용하여 간단한 메모 저장 시스템을 구현합니다.
개별 노트에 액세스하기 위한 사용자 지정 노트:// URI 체계
각 노트 리소스에는 이름, 설명 및 텍스트/일반 MIME 유형이 있습니다.
프롬프트
서버는 단일 프롬프트를 제공합니다.
summarize-notes: 저장된 모든 노트의 요약을 생성합니다.
세부 수준(간략/상세)을 제어하기 위한 선택적 "스타일" 인수
현재 모든 노트와 스타일 선호도를 결합하여 프롬프트를 생성합니다.
도구
서버는 하나의 도구를 구현합니다.
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
개발
건축 및 출판
배포를 위해 패키지를 준비하려면:
종속성 동기화 및 잠금 파일 업데이트:
지엑스피1
패키지 배포 빌드:
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 sodukusolverInspector를 실행하면 브라우저에서 접근하여 디버깅을 시작할 수 있는 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-