@damper/mcp 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/dist/index.js +74 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -118,6 +118,26 @@ AI agents can store and retrieve project documentation to help future agents wor
|
|
|
118
118
|
|
|
119
119
|
⚠️ **Security:** Never include sensitive data (API keys, secrets, credentials, connection strings) in context uploads. Users can review and delete context from Settings → AI Context.
|
|
120
120
|
|
|
121
|
+
### Project Settings
|
|
122
|
+
|
|
123
|
+
Configure agent-relevant project settings programmatically.
|
|
124
|
+
|
|
125
|
+
| Tool | Description |
|
|
126
|
+
|------|-------------|
|
|
127
|
+
| `get_project_settings` | View current settings (completion checklist, etc.) |
|
|
128
|
+
| `update_project_settings` | Configure completion checklist and other agent-relevant settings |
|
|
129
|
+
|
|
130
|
+
**Completion checklist workflow:**
|
|
131
|
+
1. `update_project_settings` with `completionChecklist: ["All tests pass", "Build succeeds"]`
|
|
132
|
+
2. Agents see the checklist when they call `start_task`
|
|
133
|
+
3. Agents must confirm all items via `confirmations` when calling `complete_task`
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
> View project settings
|
|
137
|
+
> Set completion checklist to require tests and builds
|
|
138
|
+
> Clear the completion checklist
|
|
139
|
+
```
|
|
140
|
+
|
|
121
141
|
### Hierarchical Sections
|
|
122
142
|
|
|
123
143
|
For monorepos or large projects, organize sections hierarchically:
|
package/dist/index.js
CHANGED
|
@@ -41,7 +41,7 @@ async function api(method, path, body) {
|
|
|
41
41
|
// Server
|
|
42
42
|
const server = new McpServer({
|
|
43
43
|
name: 'damper',
|
|
44
|
-
version: '0.
|
|
44
|
+
version: '0.5.0',
|
|
45
45
|
});
|
|
46
46
|
// Output schemas
|
|
47
47
|
const SubtaskProgressSchema = z.object({
|
|
@@ -722,7 +722,7 @@ server.registerTool('get_agent_instructions', {
|
|
|
722
722
|
openWorldHint: false,
|
|
723
723
|
},
|
|
724
724
|
}, async ({ format = 'section' }) => {
|
|
725
|
-
const lastModified = '2025-02-
|
|
725
|
+
const lastModified = '2025-02-06';
|
|
726
726
|
const section = `## Task Management with Damper MCP
|
|
727
727
|
|
|
728
728
|
> Last updated: ${lastModified}
|
|
@@ -753,6 +753,10 @@ This project uses Damper MCP for task tracking. **You MUST follow this workflow.
|
|
|
753
753
|
- \`add_to_changelog\` - Manually add completed tasks to a changelog
|
|
754
754
|
- \`publish_changelog\` - Publish with optional email notifications and Twitter posting
|
|
755
755
|
|
|
756
|
+
### Project Settings
|
|
757
|
+
- \`get_project_settings\` - View current settings (completion checklist, etc.)
|
|
758
|
+
- \`update_project_settings\` - Configure completion checklist and other agent-relevant settings
|
|
759
|
+
|
|
756
760
|
### At Session End (MANDATORY)
|
|
757
761
|
- ALWAYS call \`complete_task\` (if done) or \`abandon_task\` (if stopping early)
|
|
758
762
|
- NEVER leave a started task without completing or abandoning it
|
|
@@ -1875,6 +1879,74 @@ server.registerTool('publish_changelog', {
|
|
|
1875
1879
|
},
|
|
1876
1880
|
};
|
|
1877
1881
|
});
|
|
1882
|
+
// ==================== Project Settings Tools ====================
|
|
1883
|
+
// Tool: Get project settings
|
|
1884
|
+
server.registerTool('get_project_settings', {
|
|
1885
|
+
title: 'Get Project Settings',
|
|
1886
|
+
description: 'View current project settings relevant to agents (completion checklist, etc.).\n\n' +
|
|
1887
|
+
'**When to use**: Check what completion checklist items are configured, or verify settings before updating them.',
|
|
1888
|
+
inputSchema: z.object({}),
|
|
1889
|
+
outputSchema: z.object({
|
|
1890
|
+
completionChecklist: z.array(z.string()),
|
|
1891
|
+
}),
|
|
1892
|
+
annotations: {
|
|
1893
|
+
readOnlyHint: true,
|
|
1894
|
+
destructiveHint: false,
|
|
1895
|
+
idempotentHint: true,
|
|
1896
|
+
openWorldHint: false,
|
|
1897
|
+
},
|
|
1898
|
+
}, async () => {
|
|
1899
|
+
const data = await api('GET', '/api/agent/project/settings');
|
|
1900
|
+
if (!data.completionChecklist || data.completionChecklist.length === 0) {
|
|
1901
|
+
return {
|
|
1902
|
+
content: [{ type: 'text', text: 'No completion checklist configured.' }],
|
|
1903
|
+
structuredContent: data,
|
|
1904
|
+
};
|
|
1905
|
+
}
|
|
1906
|
+
const lines = data.completionChecklist.map((item, i) => `${i + 1}. ${item}`);
|
|
1907
|
+
return {
|
|
1908
|
+
content: [{ type: 'text', text: `Completion checklist:\n${lines.join('\n')}` }],
|
|
1909
|
+
structuredContent: data,
|
|
1910
|
+
};
|
|
1911
|
+
});
|
|
1912
|
+
// Tool: Update project settings
|
|
1913
|
+
server.registerTool('update_project_settings', {
|
|
1914
|
+
title: 'Update Project Settings',
|
|
1915
|
+
description: 'Configure agent-relevant project settings.\n\n' +
|
|
1916
|
+
'**completionChecklist**: Items agents must confirm before completing tasks. ' +
|
|
1917
|
+
'Pass an empty array to clear the checklist.\n\n' +
|
|
1918
|
+
'Example items: "All tests pass", "Build succeeds", "Migration created if schema changed"',
|
|
1919
|
+
inputSchema: z.object({
|
|
1920
|
+
completionChecklist: z.array(z.string()).optional()
|
|
1921
|
+
.describe('Checklist items agents must confirm when completing tasks. Pass [] to clear.'),
|
|
1922
|
+
}),
|
|
1923
|
+
outputSchema: z.object({
|
|
1924
|
+
completionChecklist: z.array(z.string()),
|
|
1925
|
+
message: z.string(),
|
|
1926
|
+
}),
|
|
1927
|
+
annotations: {
|
|
1928
|
+
readOnlyHint: false,
|
|
1929
|
+
destructiveHint: false,
|
|
1930
|
+
idempotentHint: true,
|
|
1931
|
+
openWorldHint: false,
|
|
1932
|
+
},
|
|
1933
|
+
}, async ({ completionChecklist }) => {
|
|
1934
|
+
const body = {};
|
|
1935
|
+
if (completionChecklist !== undefined)
|
|
1936
|
+
body.completionChecklist = completionChecklist;
|
|
1937
|
+
const result = await api('PATCH', '/api/agent/project/settings', body);
|
|
1938
|
+
if (result.completionChecklist.length === 0) {
|
|
1939
|
+
return {
|
|
1940
|
+
content: [{ type: 'text', text: 'Completion checklist cleared.' }],
|
|
1941
|
+
structuredContent: result,
|
|
1942
|
+
};
|
|
1943
|
+
}
|
|
1944
|
+
const lines = result.completionChecklist.map((item, i) => `${i + 1}. ${item}`);
|
|
1945
|
+
return {
|
|
1946
|
+
content: [{ type: 'text', text: `${result.message}\n${lines.join('\n')}` }],
|
|
1947
|
+
structuredContent: result,
|
|
1948
|
+
};
|
|
1949
|
+
});
|
|
1878
1950
|
// Start
|
|
1879
1951
|
async function main() {
|
|
1880
1952
|
const transport = new StdioServerTransport();
|