Sample MCP Server
# sample-mcp-server MCP Server
A Model Context Protocol server
This is a TypeScript-based MCP server that implements a simple notes system. It demonstrates core MCP concepts by providing:
- Resources representing text notes with URIs and metadata
- Tools for creating new notes
- Prompts for generating summaries of notes
## Features
### Resources
- List and access notes via `note://` URIs
- Each note has a title, content and metadata
- Plain text mime type for simple content access
### Tools
- `create_note` - Create new text notes
- Takes title and content as required parameters
- Stores note in server state
### Prompts
- `summarize_notes` - Generate a summary of all stored notes
- Includes all note contents as embedded resources
- Returns structured prompt for LLM summarization
## Development
Install dependencies:
```bash
npm install
```
Build the server:
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
## Installation
To use with Claude Desktop, add the server config:
On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"sample-mcp-server": {
"command": "/path/to/sample-mcp-server/build/index.js"
}
}
}
```
### Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:
```bash
npm run inspector
```
The Inspector will provide a URL to access debugging tools in your browser.
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The tool 'add' has a clear and distinct purpose of adding two numbers, making disambiguation trivial.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'add' follows a simple verb-based pattern, and there are no other tools to compare it against for inconsistency.
A single tool for an MCP server is generally too few for meaningful scope, as it limits functionality and indicates a trivial or incomplete implementation. While it might suit a minimal demo, it lacks the breadth expected for most server purposes.
The tool surface is severely incomplete; with only an 'add' tool, there are obvious gaps such as subtraction, multiplication, or other basic arithmetic operations. This makes the server impractical for any real-world mathematical tasks.