-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathllms.txt
368 lines (305 loc) · 9.17 KB
/
llms.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
> Build Together is a lightweight, self-hosted project management tool built for AI+Human collaboration. It features a web interface, a RESTful API, and full Model Context Protocol (MCP) support for integration with AI coding assistants like Cursor, Claude Code, and Windsurf.
Build Together allows you to create and manage projects, organize work into sprints, track tasks and issues, and collaborate with AI assistants through natural language. The application is designed to be simple to set up and use, with a focus on providing a smooth experience for both human users and AI assistants.
Key features:
- Create and manage projects with requirements and implementation details
- Organize work into sprints with different statuses (Planned, Active, Completed)
- Track tasks and issues with completion status
- Star important tasks and issues for quick identification
- RESTful API for all operations
- MCP server for AI assistant integration
## API Usage
The Build Together API is available at `http://127.0.0.1:3149/api` when the application is running locally.
### Authentication
No authentication is required for local development.
### API Endpoints
#### Projects
- `GET /api/projects` - List all projects
- `GET /api/projects/{id}` - Get project by ID
- `POST /api/projects` - Create a new project
- `PUT /api/projects/{id}` - Update a project
- `DELETE /api/projects/{id}` - Delete a project
#### Sprints
- `GET /api/sprints` - List all sprints
- `GET /api/sprints/{id}` - Get sprint by ID
- `POST /api/sprints` - Create a new sprint
- `PUT /api/sprints/{id}` - Update a sprint
- `DELETE /api/sprints/{id}` - Delete a sprint
#### Tasks
- `GET /api/tasks` - List all tasks
- `GET /api/tasks/{id}` - Get task by ID
- `POST /api/tasks` - Create a new task
- `PUT /api/tasks/{id}` - Update a task
- `DELETE /api/tasks/{id}` - Delete a task
- `PUT /api/tasks/{id}/star` - Star/unstar a task
#### Issues
- `GET /api/issues` - List all issues
- `GET /api/issues/{id}` - Get issue by ID
- `POST /api/issues` - Create a new issue
- `PUT /api/issues/{id}` - Update an issue
- `DELETE /api/issues/{id}` - Delete an issue
- `PUT /api/issues/{id}/star` - Star/unstar an issue
### API Examples
#### List all projects
```bash
curl -X GET http://127.0.0.1:3149/api/projects
```
#### Get a specific project
```bash
curl -X GET http://127.0.0.1:3149/api/projects/1
```
#### Create a new project
```bash
curl -X POST http://127.0.0.1:3149/api/projects \
-H "Content-Type: application/json" \
-d '{
"name": "New Project",
"description": "Project description",
"requirements": "Project requirements",
"implementation": "Implementation details"
}'
```
#### Update a project
```bash
curl -X PUT http://127.0.0.1:3149/api/projects/1 \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Project",
"description": "Updated description",
"requirements": "Updated requirements",
"implementation": "Updated implementation details"
}'
```
#### Delete a project
```bash
curl -X DELETE http://127.0.0.1:3149/api/projects/1
```
## MCP Server Usage
The MCP server allows AI assistants to interact with Build Together using natural language commands.
### Available MCP Tools
#### Project Management
- `list_projects` - List all projects
- `get_project` - Get detailed information about a specific project
- `create_project` - Create a new project
- `update_project` - Update an existing project
#### Sprint Management
- `list_sprints` - List all sprints or sprints for a specific project
- `get_sprint` - Get detailed information about a specific sprint
- `create_sprint` - Create a new sprint
- `update_sprint` - Update an existing sprint
#### Task Management
- `list_tasks` - List all tasks for a sprint
- `get_task` - Get detailed information about a specific task
- `create_task` - Create a new task
- `update_task` - Update an existing task (e.g., mark as completed)
#### Issue Management
- `list_issues` - List all issues or issues for a specific sprint
- `get_issue` - Get detailed information about a specific issue
- `create_issue` - Create a new issue
- `update_issue` - Update an existing issue (e.g., mark as resolved)
### MCP Examples
#### List all projects
```json
{
"name": "list_projects",
"parameters": {}
}
```
#### Get a specific project
```json
{
"name": "get_project",
"parameters": {
"project_id": 1
}
}
```
#### Create a new project
```json
{
"name": "create_project",
"parameters": {
"name": "New Project",
"description": "Project description",
"requirements": "Project requirements"
}
}
```
#### Update a project
```json
{
"name": "update_project",
"parameters": {
"project_id": 1,
"name": "Updated Project Name",
"description": "Updated description",
"requirements": "Updated requirements",
"implementation_details": "Updated implementation details"
}
}
```
#### List all sprints or sprints for a project
```json
{
"name": "list_sprints",
"parameters": {
"project_id": 1
}
}
```
#### Get a specific sprint
```json
{
"name": "get_sprint",
"parameters": {
"sprint_id": 1
}
}
```
#### Create a new sprint for a project
```json
{
"name": "create_sprint",
"parameters": {
"project_id": 1,
"name": "Sprint 1",
"description": "First sprint",
"status": "Planned"
}
}
```
#### Update a sprint
```json
{
"name": "update_sprint",
"parameters": {
"sprint_id": 1,
"name": "Updated Sprint Name",
"description": "Updated sprint description",
"status": "Active"
}
}
```
#### List all tasks for a sprint
```json
{
"name": "list_tasks",
"parameters": {
"sprint_id": 1
}
}
```
#### Get a specific task
```json
{
"name": "get_task",
"parameters": {
"task_id": 1
}
}
```
#### Create a new task in a sprint
```json
{
"name": "create_task",
"parameters": {
"sprint_id": 1,
"details": "Implement feature X",
"completed": false
}
}
```
#### Update a task
```json
{
"name": "update_task",
"parameters": {
"task_id": 1,
"details": "Updated task description",
"completed": true
}
}
```
#### List all issues or issues for a sprint
```json
{
"name": "list_issues",
"parameters": {
"sprint_id": 1
}
}
```
#### Get a specific issue
```json
{
"name": "get_issue",
"parameters": {
"issue_id": 1
}
}
```
#### Create a new issue in a sprint
```json
{
"name": "create_issue",
"parameters": {
"sprint_id": 1,
"details": "Bug: Feature X not working correctly",
"completed": false
}
}
```
#### Update an issue
```json
{
"name": "update_issue",
"parameters": {
"issue_id": 1,
"details": "Updated issue description",
"completed": true
}
}
```
### Tips for AI Assistants
1. **Working with Tasks and Issues**: When a user asks you to "work on tasks or issues," you should:
- List all tasks or issues using `list_tasks` or `list_issues` with the appropriate sprint_id
- Focus on implementing or providing solutions for these tasks or issues
2. **Project Context**: Always maintain context about the current project structure:
- Which project is the user working on?
- What sprints exist in this project?
- What tasks and issues are in the current sprint?
3. **Natural Language Processing**: Common user requests and their MCP tool mappings:
- "Show me all projects" → `list_projects`
- "Create a new sprint" → `create_sprint`
- "Mark this task as complete" → `update_task` with completed=true
- "Mark this issue as resolved" → `update_issue` with completed=true
4. **Error Handling**: If an MCP command fails:
- Check if the referenced ID exists
- Verify all required parameters are provided
- Ensure parameter values are valid (e.g., sprint status must be one of: "Planned", "Active", "Completed")
- Make sure you're using the correct parameter names (e.g., "details" for task and issue content, not "title" or "description")
5. **Workflow Suggestions**: Recommend efficient workflows to users:
- Create projects with clear requirements
- Organize work into sprints with specific goals
- Use tasks for planned work and issues for problems that arise
- Update tasks and issues as work progresses
## Executing MCP Commands
To execute an MCP command, send a POST request to the MCP server endpoint:
```bash
curl -X POST http://127.0.0.1:3149/mcp/execute \
-H "Content-Type: application/json" \
-d '{
"name": "list_projects",
"parameters": {}
}' | python -m json.tool
```
For AI assistants with direct MCP integration (like Windsurf or Cursor), you can use the natural language interface to issue commands, and the assistant will handle the MCP protocol details.
## Known Limitations
1. AI assistants may sometimes have trouble executing MCP commands or the MCP server might require multiple tool calls
2. Copy task/issue ID functionality doesn't work within Windsurf Browser Preview
3. Various UX/UI improvements are planned for future releases
## Best Practices
1. Always verify the success of operations by checking the response
2. Maintain context about the project structure to avoid unnecessary API calls
3. Use descriptive titles and detailed descriptions for all items
4. Leverage Markdown formatting in description fields for better readability
5. Star important tasks and issues to make them stand out