add-dart-mcp-server-feature
Skill292 starsChanged 26 days agoBSD-3-ClauseView on GitHub
Instructions for adding new features (tools, prompts, etc.) to the dart_mcp_server package.
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 2 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Follow these instructions when adding new tools, prompts, or other capabilities to the dart_mcp_server.
- Very specific: line 16
All server features are implemented as mixins on the DartMCPServer at pkgs/dart_mcp_server/lib/src/server.dart.
- Very specific: line 19
Check existing mixins: Look under pkgs/dart_mcp_server/lib/src/mixins/ to see if your feature fits into an existing category (e.g., …
- Distinctive: line 22
Create a new mixin: If your feature is distinct, create a new file in that directory, following the patterns in existing mixins.
- Very specific: line 30
Parameter Names: When adding new arguments to tools or prompts, always add a constant to the ParameterNames extension in …
- Very specific: line 34
Analytics: Never send raw strings from the client to analytics.
- Distinctive: line 45
Always add tests for any new features.
- Very specific: line 47
Test Harness: Use the TestHarness class located in pkgs/dart_mcp_server/test/test_harness.dart.
- Very specific: line 49
Existing Tests: Look at pkgs/dart_mcp_server/test/tools/ for examples of how to test specific tools.
- Very specific: line 51
Enhance Harness: If the current TestHarness lacks functionality needed for your test, feel free to add it.
- Very specific: line 62
Run the pkgs/dart_mcp_server/tool/update_readme.dart script to update the README.md file with any new features, it must be ran from the …
- Very specific: line 66
Update the CHANGELOG.md file to include any user facing updates.
- Very specific: line 70
Update this SKILL.md file if that would be helpful for future features.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Adding Features to dart_mcp_server
Follow these instructions when adding new tools, prompts, or other capabilities
to the dart_mcp_server.
1. Locate or Create a Mixin
All server features are implemented as mixins on the DartMCPServer at
pkgs/dart_mcp_server/lib/src/server.dart.
- Check existing mixins: Look under
pkgs/dart_mcp_server/lib/src/mixins/to see if your feature fits into an existing category (e.g.,analyzer.dart,pub.dart). - Create a new mixin: If your feature is distinct, create a new file in that directory, following the patterns in existing mixins. Make sure to include a copyright header at the top of the file, with the current year.
2. Implementation Details
- Registration: Tools, prompts, etc should be registered in the
initializemethod of the mixin, which is an override and must callsuper.initialize(). - Parameter Names: When adding new arguments to tools or prompts, always
add a constant to the
ParameterNamesextension inpkgs/dart_mcp_server/lib/src/utils/names.dartand use that constant instead of hardcoding string literals in your tool parsing and schema. - Analytics: Never send raw strings from the client to analytics. Tools
with a
commandparameter must declare its values with anenum(for exampleEnumSchema.untitledSingleSelect), because only those values are included in the logged tool name. Similarly, new prompts must be added to thePromptNamesenum, because only those prompt names are logged. Create analytics events withcreateDartMCPEventfrompkgs/dart_mcp_server/lib/src/utils/analytics.dart, which sanitizes the client info.
3. Testing
Always add tests for any new features.
- Test Harness: Use the
TestHarnessclass located inpkgs/dart_mcp_server/test/test_harness.dart. - Existing Tests: Look at
pkgs/dart_mcp_server/test/tools/for examples of how to test specific tools. - Enhance Harness: If the current
TestHarnesslacks functionality needed for your test, feel free to add it.
4. Verification
- Run tests
- Run analysis
- Format the code
5. Documentation
- Run the
pkgs/dart_mcp_server/tool/update_readme.dartscript to update theREADME.mdfile with any new features, it must be ran from thepkgs/dart_mcp_serverdirectory. - Apply any other manual edits to the
README.mdfile as needed. - Update the
CHANGELOG.mdfile to include any user facing updates.
6. Update this skill
- Update this
SKILL.mdfile if that would be helpful for future features.
In this repository3 other files it gives its agents.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

