

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456# doughnut-mcp-server MCP Server78A Model Context Protocol server for Doughnut.910Is in the `mcp-server` folder.1112This is a TypeScript-based MCP server that demonstrates core MCP concepts by providing:1314- Tools that read note context from the Doughnut backend API (search and graph).1516## Structure (minimal)1718```19mcp-server/20 src/ # Production source code21 index.ts # boot: create context, start stdio22 server.ts # assemble server, list tools, route calls23 context.ts # read env, create DoughnutApi24 api.ts # DoughnutApi factory25 schemas.ts # tool input schemas (shared)26 tools/index.ts # tool registry + handlers27 types.ts # shared types28 utils.ts # error + validation helpers29 tests/ # Unit tests (separate from production code)30 server.test.ts # Server and tools tests31 utils.test.ts # Utility functions tests32 vitest.config.ts # Test configuration33 tsconfig.json # TypeScript configuration34 package.json # Dependencies and scripts35```3637**Important**: Tests are kept in a separate `tests/` folder, not mixed with production code in the `src/` folder. This maintains clean separation between production and test code, making the codebase more organized and maintainable.3839## Development4041### Building the MCP Server4243Run this command to build the mcp server:4445```sh46CURSOR_DEV=true nix develop -c pnpm mcp-server:bundle47```4849Note: Rebuild the bundle before running the e2e `mcp_services.feature`.5051### Running Unit Tests5253The MCP server has comprehensive unit tests using Vitest. **Tests are located in the `tests/` folder**, not mixed with production code. Run tests with:5455```sh56CURSOR_DEV=true nix develop -c pnpm mcp-server:test57```5859Or from the root directory:6061```sh62CURSOR_DEV=true nix develop -c pnpm mcp-server:test63```6465### Test Organization6667- **Production code**: Located in `src/` folder68- **Test files**: Located in `tests/` folder with `.test.ts` extension69- **Test configuration**: `vitest.config.ts` points to `tests/**/*.test.ts`70- **TypeScript config**: `tsconfig.json` includes both `src/` and `tests/` folders7172This separation ensures:73- Clean, organized codebase structure74- Easy identification of production vs. test code75- Better maintainability and readability76- Standard practice followed by most TypeScript projects7778### Formatting Code7980Format the MCP server code with:8182```sh83CURSOR_DEV=true nix develop -c pnpm mcp-server:format84```8586### Test Coverage8788The unit tests cover:89- Utility functions (error handling, parameter validation, environment configuration)90- Server configuration and tool definitions91- Tool schema validation92- Response format validation93- Behavior-focused assertions that are insensitive to internal structure9495## CI/CD Integration9697- Unit tests run as part of the "Frontend & MCP Unit Tests" job in GitHub Actions98- Formatting is included in the workspace format command; see `.cursor/rules/linting_formating.mdc`99- Tests are automatically executed on every push to main branch100101## How to use this MCP Server102103Add the below command to your AI MCP Server configuration.104105For Cursor:106```json107{108 "mcpServers": {109 "doughnut": {110 "disabled": false,111 "timeout": 60,112 "transportType": "stdio",113 "command": "node",114 "args": [115 "<doughnut root folder>/mcp-server/dist/mcp-server.bundle.mjs"116 ],117 "env": {118 "DOUGHNUT_API_BASE_URL": "http://localhost:9081",119 "DOUGHNUT_API_AUTH_TOKEN": "your-token-here"120 }121 }122 }123}124```125126For VS Code (you need to put the following content into `./.vscode/mcp.json`):127```json128{129 "servers": {130 "doughnut": {131 "command": "node",132 "args": [133 "<doughnut root folder>/mcp-server/dist/mcp-server.bundle.mjs"134 ],135 "env": {136 "DOUGHNUT_API_BASE_URL": "http://localhost:9081",137 "DOUGHNUT_API_AUTH_TOKEN": "your-token-here"138 }139 }140 }141}142143For IntelliJ IDE you need to go to the general settings/tools/GitHub Copilot/MCP and press configure:144```json145{146 "servers": {147 "doughnut": {148 "disabled": false,149 "timeout": 60,150 "transportType": "stdio",151 "command": "node",152 "args": [153 "<doughnut root folder>/mcp-server/dist/mcp-server.bundle.mjs"154 ],155 "env": {156 "DOUGHNUT_API_BASE_URL": "http://localhost:9081",157 "DOUGHNUT_API_AUTH_TOKEN": "your-token-here"158 }159 }160 }161}162163```164165## Available Tools166167- `find_most_relevant_note` - Search for the single most relevant note for a query168- `get_note_graph` - Fetch graph context for a note by ID and token limit
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| nerds-odd-e/doughnut.cursor/rules/general.mdc · 49 | Cursor rules | styledo-not | 49/100 | 14 days ago | |
| nerds-odd-e/doughnut.clinerules/daisyui.md · 49 | Cline rules | setuplint-formatstyleui+1 | 57/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/architecture-decisions.mdc · 49 | Cursor rules | no sections | 16/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/backend-code.mdc · 49 | Cursor rules | styletypesdatabasedo-not | 61/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/backend-testing.mdc · 49 | Cursor rules | buildteststyletesting-strategy+2 | 73/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/cli.mdc · 49 | Cursor rules | setupbuildteststyle+4 | 96/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/db-migration.mdc · 49 | Cursor rules | stylearchdatabasedeployment | 64/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/e2e-authoring.mdc · 49 | Cursor rules | setupteststylearch+3 | 80/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/e2e-ocr.mdc · 49 | Cursor rules | setuptesting-strategydo-not | 46/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/frontend-api.mdc · 49 | Cursor rules | styletesting-strategyapido-not | 57/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/frontend-component.mdc · 49 | Cursor rules | testlint-formatstylearch+2 | 76/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/frontend-storybook.mdc · 49 | Cursor rules | buildteststyletesting-strategy+1 | 69/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/frontend-testing.mdc · 49 | Cursor rules | buildteststyletesting-strategy+2 | 89/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/gsd-coexistence.mdc · 49 | Cursor rules | style | 60/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/linting_formating.mdc · 49 | Cursor rules | testlint-formatstylearch+6 | 88/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/planning.mdc · 49 | Cursor rules | teststylearchdo-not+1 | 75/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/script.mdc · 49 | Cursor rules | testarch | 58/100 | 14 days ago | |
| nerds-odd-e/doughnutAGENTS.md · 49 | AGENTS.md | no sections | 47/100 | 14 days ago | |
| nerds-odd-e/doughnutCLAUDE.md · 49 | CLAUDE.md | agent-behaviour | 47/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/nerds-odd-e-doughnut-cursor-rules-mcp-server)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.