Skip to main content
Glama
bendichter

dandi-query-server

by bendichter
README.md
# dandi-query-server MCP Server

Enables complex queries over data on the DANDI Archive

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": {
    "dandi-query-server": {
      "command": "/path/to/dandi-query-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

A3.5/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have distinct purposes, but `get_schema` and `get_full_schema` overlap significantly. The descriptions differ in wording but not in clear behavioral distinction, which could confuse an agent.

Naming Consistency5/5

All tool names follow a consistent `verb_noun` pattern (e.g., `execute_sql`, `search_datasets`). Even `get_full_schema` adheres to this pattern with an adjective inserted. No mixing of conventions.

Tool Count5/5

Seven tools cover querying, schema exploration, and validation. This is a well-scoped set for a database query server—enough tools to be useful without overwhelming the user.

Completeness4/5

The tool set covers core query, schema, and search needs. Missing conveniences like direct single-resource lookup by ID, but SQL can compensate. Minor gap in not having a tool for retrieving specific dataset details without SQL.

Maintenance

ActivityInactive
ResponsivenessNo issues