@agllama/mcp 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/LICENSE +21 -0
- package/README.md +248 -0
- package/dist/api-client.d.ts +120 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +421 -0
- package/dist/api-client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +673 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/backlog.d.ts +22 -0
- package/dist/tools/backlog.d.ts.map +1 -0
- package/dist/tools/backlog.js +109 -0
- package/dist/tools/backlog.js.map +1 -0
- package/dist/tools/boardConfig.d.ts +77 -0
- package/dist/tools/boardConfig.d.ts.map +1 -0
- package/dist/tools/boardConfig.js +154 -0
- package/dist/tools/boardConfig.js.map +1 -0
- package/dist/tools/boardTemplates.d.ts +47 -0
- package/dist/tools/boardTemplates.d.ts.map +1 -0
- package/dist/tools/boardTemplates.js +119 -0
- package/dist/tools/boardTemplates.js.map +1 -0
- package/dist/tools/boards.d.ts +62 -0
- package/dist/tools/boards.d.ts.map +1 -0
- package/dist/tools/boards.js +260 -0
- package/dist/tools/boards.js.map +1 -0
- package/dist/tools/comments.d.ts +82 -0
- package/dist/tools/comments.d.ts.map +1 -0
- package/dist/tools/comments.js +275 -0
- package/dist/tools/comments.js.map +1 -0
- package/dist/tools/connect.d.ts +7 -0
- package/dist/tools/connect.d.ts.map +1 -0
- package/dist/tools/connect.js +50 -0
- package/dist/tools/connect.js.map +1 -0
- package/dist/tools/context.d.ts +19 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +136 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/documents.d.ts +99 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +252 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/help.d.ts +13 -0
- package/dist/tools/help.d.ts.map +1 -0
- package/dist/tools/help.js +485 -0
- package/dist/tools/help.js.map +1 -0
- package/dist/tools/index.d.ts +21 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +21 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/issueLinks.d.ts +45 -0
- package/dist/tools/issueLinks.d.ts.map +1 -0
- package/dist/tools/issueLinks.js +147 -0
- package/dist/tools/issueLinks.js.map +1 -0
- package/dist/tools/issues.d.ts +307 -0
- package/dist/tools/issues.d.ts.map +1 -0
- package/dist/tools/issues.js +715 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/labels.d.ts +56 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +213 -0
- package/dist/tools/labels.js.map +1 -0
- package/dist/tools/members.d.ts +13 -0
- package/dist/tools/members.d.ts.map +1 -0
- package/dist/tools/members.js +43 -0
- package/dist/tools/members.js.map +1 -0
- package/dist/tools/organizations.d.ts +35 -0
- package/dist/tools/organizations.d.ts.map +1 -0
- package/dist/tools/organizations.js +116 -0
- package/dist/tools/organizations.js.map +1 -0
- package/dist/tools/projects.d.ts +67 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +165 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/search.d.ts +34 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +85 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/session.d.ts +38 -0
- package/dist/tools/session.d.ts.map +1 -0
- package/dist/tools/session.js +158 -0
- package/dist/tools/session.js.map +1 -0
- package/dist/tools/sprints.d.ts +141 -0
- package/dist/tools/sprints.d.ts.map +1 -0
- package/dist/tools/sprints.js +470 -0
- package/dist/tools/sprints.js.map +1 -0
- package/dist/tools/status.d.ts +22 -0
- package/dist/tools/status.d.ts.map +1 -0
- package/dist/tools/status.js +81 -0
- package/dist/tools/status.js.map +1 -0
- package/dist/tools/workflows.d.ts +137 -0
- package/dist/tools/workflows.d.ts.map +1 -0
- package/dist/tools/workflows.js +355 -0
- package/dist/tools/workflows.js.map +1 -0
- package/dist/types.d.ts +434 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/column-instructions.d.ts +21 -0
- package/dist/utils/column-instructions.d.ts.map +1 -0
- package/dist/utils/column-instructions.js +54 -0
- package/dist/utils/column-instructions.js.map +1 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AG-Llama Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# @agllama/mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@agllama/mcp)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://nodejs.org)
|
|
6
|
+
|
|
7
|
+
Connect Claude AI to [AG-Llama](https://agllama.onrender.com) project management using the Model Context Protocol (MCP). Manage issues, sprints, and boards directly from your AI assistant.
|
|
8
|
+
|
|
9
|
+
## What is AG-Llama?
|
|
10
|
+
|
|
11
|
+
AG-Llama is a modern, lightweight Jira alternative for agile teams. This MCP server lets Claude AI interact with your projects, create issues, manage sprints, and automate workflows without leaving your conversation.
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
No installation required! Run directly with `npx`:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @agllama/mcp
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
### 1. Get Your API Key
|
|
24
|
+
|
|
25
|
+
1. Sign up at **[agllama.onrender.com](https://agllama.onrender.com)**
|
|
26
|
+
2. Navigate to **Settings > API Keys**
|
|
27
|
+
3. Click **"Generate API Key"**
|
|
28
|
+
4. Copy the key (shown only once)
|
|
29
|
+
|
|
30
|
+
### 2. Configure Claude Desktop
|
|
31
|
+
|
|
32
|
+
Add the MCP server to your Claude Desktop configuration:
|
|
33
|
+
|
|
34
|
+
#### For Claude Desktop App
|
|
35
|
+
|
|
36
|
+
Edit your Claude Desktop config file:
|
|
37
|
+
|
|
38
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
39
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
40
|
+
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
|
|
41
|
+
|
|
42
|
+
Add this configuration:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"llama": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": ["-y", "@agllama/mcp"],
|
|
50
|
+
"env": {
|
|
51
|
+
"LLAMA_API_URL": "https://agllama-api.onrender.com",
|
|
52
|
+
"LLAMA_API_KEY": "llm_xxxxxxxx"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Replace `llm_xxxxxxxx` with your actual API key.
|
|
60
|
+
|
|
61
|
+
#### For Claude Code (CLI)
|
|
62
|
+
|
|
63
|
+
If you're using Claude Code, add to your project's `.mcp.json`:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"llama": {
|
|
69
|
+
"command": "npx",
|
|
70
|
+
"args": ["-y", "@agllama/mcp"],
|
|
71
|
+
"env": {
|
|
72
|
+
"LLAMA_API_URL": "https://agllama-api.onrender.com",
|
|
73
|
+
"LLAMA_API_KEY": "llm_xxxxxxxx"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Or use the Claude CLI:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
claude mcp add llama -- npx -y @agllama/mcp
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Then set environment variables:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
export LLAMA_API_URL=https://agllama-api.onrender.com
|
|
90
|
+
export LLAMA_API_KEY=llm_xxxxxxxx
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 3. Restart Claude
|
|
94
|
+
|
|
95
|
+
Restart Claude Desktop or Claude Code to load the MCP server.
|
|
96
|
+
|
|
97
|
+
### 4. Test the Connection
|
|
98
|
+
|
|
99
|
+
In Claude, try:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Use llama to test the connection
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
You should see your user info and available organizations.
|
|
106
|
+
|
|
107
|
+
## Usage Examples
|
|
108
|
+
|
|
109
|
+
### Get Project Overview
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
Use llama to get the context for my-team/PROJ
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Claude will show you the active sprint, backlog, workflow statuses, and team members.
|
|
116
|
+
|
|
117
|
+
### Create Issues
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Use llama to create a high-priority story in my-team/PROJ:
|
|
121
|
+
- Summary: "Add user authentication"
|
|
122
|
+
- Description: "Implement JWT-based auth with refresh tokens"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Manage Sprints
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Use llama to:
|
|
129
|
+
1. Show me the backlog for my-team/PROJ
|
|
130
|
+
2. Create a new sprint called "Sprint 5"
|
|
131
|
+
3. Add the top 3 highest-priority issues to it
|
|
132
|
+
4. Start the sprint
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Search Issues
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
Use llama to find all critical bugs assigned to me in my-team
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Board Operations
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
Use llama to show me the board for my-team/PROJ
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Automate Workflows
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Use llama to suggest a workflow for "sprint planning"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Claude will find and execute saved workflows from your organization.
|
|
154
|
+
|
|
155
|
+
## Available Tools
|
|
156
|
+
|
|
157
|
+
The MCP server provides 40+ tools organized into categories:
|
|
158
|
+
|
|
159
|
+
### Core Operations
|
|
160
|
+
- **Context & Connection**: Test connection, get project snapshots
|
|
161
|
+
- **Organizations**: List, create, and manage orgs
|
|
162
|
+
- **Projects**: Create and configure projects
|
|
163
|
+
- **Issues**: Full CRUD operations, status transitions, assignments
|
|
164
|
+
- **Sprints**: Create, start, complete sprints, manage sprint backlog
|
|
165
|
+
- **Boards**: View kanban boards, move issues between columns
|
|
166
|
+
|
|
167
|
+
### Collaboration
|
|
168
|
+
- **Comments**: Add, update, delete comments on issues
|
|
169
|
+
- **Issue Links**: Create relationships (blocks, relates to, duplicates)
|
|
170
|
+
- **Labels**: Create and manage issue labels
|
|
171
|
+
- **Members**: List team members
|
|
172
|
+
|
|
173
|
+
### Automation
|
|
174
|
+
- **Search**: Find issues with filters
|
|
175
|
+
- **Workflows**: Create and run reusable Claude workflows
|
|
176
|
+
- **Help**: Built-in documentation (`llama_help`)
|
|
177
|
+
|
|
178
|
+
See the [full tool reference](https://github.com/willsmanley/JiraKiller/blob/master/packages/mcp-server/MCP_TOOLS.md) for detailed documentation.
|
|
179
|
+
|
|
180
|
+
## Environment Variables
|
|
181
|
+
|
|
182
|
+
| Variable | Required | Description |
|
|
183
|
+
|----------|----------|-------------|
|
|
184
|
+
| `LLAMA_API_URL` | Yes | API endpoint (production: `https://agllama-api.onrender.com`) |
|
|
185
|
+
| `LLAMA_API_KEY` | Yes | Your API key from [AG-Llama Settings](https://agllama.onrender.com/settings/api-keys) |
|
|
186
|
+
|
|
187
|
+
## Self-Hosted Setup
|
|
188
|
+
|
|
189
|
+
Running your own AG-Llama instance? Configure the MCP server with your local or custom API URL:
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"mcpServers": {
|
|
194
|
+
"llama": {
|
|
195
|
+
"command": "npx",
|
|
196
|
+
"args": ["-y", "@agllama/mcp"],
|
|
197
|
+
"env": {
|
|
198
|
+
"LLAMA_API_URL": "http://localhost:3001",
|
|
199
|
+
"LLAMA_API_KEY": "your-api-key-here"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Troubleshooting
|
|
207
|
+
|
|
208
|
+
### "Connection failed" error
|
|
209
|
+
- Verify your API key is correct
|
|
210
|
+
- Check that `LLAMA_API_URL` is set to `https://agllama-api.onrender.com`
|
|
211
|
+
- Ensure you've restarted Claude after configuration changes
|
|
212
|
+
|
|
213
|
+
### "Invalid API key" error
|
|
214
|
+
- Generate a new API key at [agllama.onrender.com/settings/api-keys](https://agllama.onrender.com/settings/api-keys)
|
|
215
|
+
- Make sure the key starts with `llm_`
|
|
216
|
+
|
|
217
|
+
### Tools not showing up
|
|
218
|
+
- Confirm the MCP server is configured correctly in Claude Desktop config
|
|
219
|
+
- Check Claude's MCP server logs for errors
|
|
220
|
+
- Try running `npx @agllama/mcp` directly to test
|
|
221
|
+
|
|
222
|
+
### Rate limiting
|
|
223
|
+
The production API has rate limits. If you're hitting limits, consider:
|
|
224
|
+
- Batching operations
|
|
225
|
+
- Using project context (`llama_context`) to cache information
|
|
226
|
+
- Self-hosting AG-Llama for unlimited access
|
|
227
|
+
|
|
228
|
+
## Links
|
|
229
|
+
|
|
230
|
+
- **Web App**: [agllama.onrender.com](https://agllama.onrender.com)
|
|
231
|
+
- **API Documentation**: [agllama-api.onrender.com](https://agllama-api.onrender.com)
|
|
232
|
+
- **GitHub Repository**: [github.com/willsmanley/JiraKiller](https://github.com/willsmanley/JiraKiller)
|
|
233
|
+
- **Issue Tracker**: [github.com/willsmanley/JiraKiller/issues](https://github.com/willsmanley/JiraKiller/issues)
|
|
234
|
+
- **Full Tool Reference**: [MCP_TOOLS.md](https://github.com/willsmanley/JiraKiller/blob/master/packages/mcp-server/MCP_TOOLS.md)
|
|
235
|
+
|
|
236
|
+
## License
|
|
237
|
+
|
|
238
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
239
|
+
|
|
240
|
+
## Support
|
|
241
|
+
|
|
242
|
+
- **Bug Reports**: [GitHub Issues](https://github.com/willsmanley/JiraKiller/issues)
|
|
243
|
+
- **Feature Requests**: [GitHub Issues](https://github.com/willsmanley/JiraKiller/issues)
|
|
244
|
+
- **Questions**: Use the `llama_help` tool in Claude for built-in documentation
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
Built with the [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { MCPContextResponse, MCPUserInfo, MCPIssueDetail, MCPIssueSummary, MCPSprintDetail, CreateIssueInput, UpdateIssueInput, BatchCreateIssueInput, BatchUpdateIssueInput, BatchResult, CreateSprintInput, SearchFilters, SearchResult, MCPOrganization, CreateOrganizationInput, MCPProject, CreateProjectInput, UpdateProjectInput, MCPBoard, MoveIssueInput, MCPComment, CreateCommentInput, MCPLabel, CreateLabelInput, MCPMember, MCPIssueLink, CreateIssueLinkInput, StartSprintInput, CompleteSprintInput, MCPWorkflowSummary, MCPWorkflowDetail, MCPSuggestedWorkflow, MCPWorkflowExecution, CreateClaudeWorkflowInput, UpdateClaudeWorkflowInput, MCPDocumentSummary, MCPDocumentDetail, CreateDocumentInput, UpdateDocumentInput, ListDocumentsFilters, MCPColumnConfiguration, UpdateColumnConfigInput, McpSessionResponse, SetSessionInput } from './types.js';
|
|
2
|
+
export declare class LlamaApiError extends Error {
|
|
3
|
+
statusCode: number;
|
|
4
|
+
constructor(statusCode: number, message: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class LlamaApiClient {
|
|
7
|
+
private baseUrl;
|
|
8
|
+
private apiKey;
|
|
9
|
+
constructor(baseUrl: string, apiKey: string);
|
|
10
|
+
private request;
|
|
11
|
+
testConnection(): Promise<MCPUserInfo>;
|
|
12
|
+
getProjectContext(orgSlug: string, projectKey: string): Promise<MCPContextResponse>;
|
|
13
|
+
getProjectContextDoc(orgSlug: string, projectKey: string): Promise<{
|
|
14
|
+
content: string;
|
|
15
|
+
updatedAt: string | null;
|
|
16
|
+
updatedBy: string | null;
|
|
17
|
+
}>;
|
|
18
|
+
updateProjectContextDoc(orgSlug: string, projectKey: string, content: string): Promise<{
|
|
19
|
+
content: string;
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
updatedBy: string;
|
|
22
|
+
}>;
|
|
23
|
+
getIssue(orgSlug: string, projectKey: string, issueKey: string): Promise<MCPIssueDetail>;
|
|
24
|
+
createIssue(orgSlug: string, projectKey: string, input: CreateIssueInput): Promise<MCPIssueDetail>;
|
|
25
|
+
updateIssue(orgSlug: string, projectKey: string, issueKey: string, input: UpdateIssueInput): Promise<MCPIssueDetail>;
|
|
26
|
+
deleteIssue(orgSlug: string, projectKey: string, issueKey: string): Promise<{
|
|
27
|
+
subtasksDeleted: number;
|
|
28
|
+
}>;
|
|
29
|
+
batchCreateIssues(orgSlug: string, projectKey: string, issues: BatchCreateIssueInput[]): Promise<BatchResult<{
|
|
30
|
+
key: string;
|
|
31
|
+
summary: string;
|
|
32
|
+
}>>;
|
|
33
|
+
batchUpdateStatus(orgSlug: string, projectKey: string, issueKeys: string[], statusId: string): Promise<BatchResult<{
|
|
34
|
+
key: string;
|
|
35
|
+
status: string;
|
|
36
|
+
}>>;
|
|
37
|
+
batchUpdateIssues(orgSlug: string, projectKey: string, updates: BatchUpdateIssueInput[]): Promise<BatchResult<{
|
|
38
|
+
key: string;
|
|
39
|
+
changes: string[];
|
|
40
|
+
}>>;
|
|
41
|
+
listSprints(orgSlug: string, projectKey: string): Promise<MCPSprintDetail[]>;
|
|
42
|
+
createSprint(orgSlug: string, projectKey: string, input: CreateSprintInput): Promise<MCPSprintDetail>;
|
|
43
|
+
addIssuesToSprint(orgSlug: string, projectKey: string, issueKeys: string[], sprintId: string | null): Promise<MCPIssueSummary[]>;
|
|
44
|
+
searchIssues(orgSlug: string, query: string, filters?: SearchFilters): Promise<SearchResult>;
|
|
45
|
+
listOrganizations(): Promise<MCPOrganization[]>;
|
|
46
|
+
getOrganization(slug: string): Promise<MCPOrganization>;
|
|
47
|
+
createOrganization(input: CreateOrganizationInput): Promise<MCPOrganization>;
|
|
48
|
+
listProjects(orgSlug: string): Promise<MCPProject[]>;
|
|
49
|
+
getProject(orgSlug: string, projectKey: string): Promise<MCPProject>;
|
|
50
|
+
createProject(orgSlug: string, input: CreateProjectInput): Promise<MCPProject>;
|
|
51
|
+
updateProject(orgSlug: string, projectKey: string, input: UpdateProjectInput): Promise<MCPProject>;
|
|
52
|
+
listBoards(orgSlug: string, projectKey: string): Promise<MCPBoard[]>;
|
|
53
|
+
getBoard(orgSlug: string, projectKey: string, boardId: string): Promise<MCPBoard>;
|
|
54
|
+
moveIssueOnBoard(orgSlug: string, projectKey: string, boardId: string, input: MoveIssueInput): Promise<void>;
|
|
55
|
+
getBacklog(orgSlug: string, projectKey: string, limit?: number, offset?: number): Promise<{
|
|
56
|
+
issues: MCPIssueSummary[];
|
|
57
|
+
total: number;
|
|
58
|
+
}>;
|
|
59
|
+
listComments(orgSlug: string, projectKey: string, issueKey: string): Promise<MCPComment[]>;
|
|
60
|
+
createComment(orgSlug: string, projectKey: string, issueKey: string, input: CreateCommentInput): Promise<MCPComment>;
|
|
61
|
+
updateComment(orgSlug: string, projectKey: string, issueKey: string, commentId: string, content: string): Promise<MCPComment>;
|
|
62
|
+
deleteComment(orgSlug: string, projectKey: string, issueKey: string, commentId: string): Promise<void>;
|
|
63
|
+
listLabels(orgSlug: string, projectKey: string): Promise<MCPLabel[]>;
|
|
64
|
+
createLabel(orgSlug: string, projectKey: string, input: CreateLabelInput): Promise<MCPLabel>;
|
|
65
|
+
deleteLabel(orgSlug: string, projectKey: string, labelName: string): Promise<{
|
|
66
|
+
issuesAffected: number;
|
|
67
|
+
}>;
|
|
68
|
+
listMembers(orgSlug: string): Promise<MCPMember[]>;
|
|
69
|
+
listIssueLinks(orgSlug: string, projectKey: string, issueKey: string): Promise<MCPIssueLink[]>;
|
|
70
|
+
createIssueLink(orgSlug: string, projectKey: string, issueKey: string, input: CreateIssueLinkInput): Promise<MCPIssueLink>;
|
|
71
|
+
deleteIssueLink(orgSlug: string, projectKey: string, issueKey: string, linkId: string): Promise<void>;
|
|
72
|
+
startSprint(sprintId: string, input?: StartSprintInput): Promise<MCPSprintDetail>;
|
|
73
|
+
completeSprint(sprintId: string, input?: CompleteSprintInput): Promise<MCPSprintDetail>;
|
|
74
|
+
getSprint(sprintId: string): Promise<MCPSprintDetail>;
|
|
75
|
+
updateSprint(sprintId: string, input: Partial<CreateSprintInput>): Promise<MCPSprintDetail>;
|
|
76
|
+
deleteSprint(sprintId: string): Promise<{
|
|
77
|
+
issuesMovedToBacklog: number;
|
|
78
|
+
}>;
|
|
79
|
+
listClaudeWorkflows(orgSlug: string, projectKey: string): Promise<MCPWorkflowSummary[]>;
|
|
80
|
+
getClaudeWorkflow(orgSlug: string, projectKey: string, workflowId: string): Promise<MCPWorkflowDetail>;
|
|
81
|
+
createClaudeWorkflow(orgSlug: string, projectKey: string, input: CreateClaudeWorkflowInput): Promise<MCPWorkflowDetail>;
|
|
82
|
+
updateClaudeWorkflow(orgSlug: string, projectKey: string, workflowId: string, input: UpdateClaudeWorkflowInput): Promise<MCPWorkflowDetail>;
|
|
83
|
+
deleteClaudeWorkflow(orgSlug: string, projectKey: string, workflowId: string): Promise<void>;
|
|
84
|
+
suggestClaudeWorkflows(orgSlug: string, projectKey: string, intent: string): Promise<MCPSuggestedWorkflow[]>;
|
|
85
|
+
runClaudeWorkflow(orgSlug: string, projectKey: string, workflowId: string, parameters: Record<string, string>): Promise<MCPWorkflowExecution>;
|
|
86
|
+
listOrgDocuments(orgSlug: string, filters?: ListDocumentsFilters): Promise<MCPDocumentSummary[]>;
|
|
87
|
+
listProjectDocuments(orgSlug: string, projectKey: string, filters?: ListDocumentsFilters): Promise<MCPDocumentSummary[]>;
|
|
88
|
+
getDocument(documentId: string): Promise<MCPDocumentDetail>;
|
|
89
|
+
createOrgDocument(orgSlug: string, input: CreateDocumentInput): Promise<MCPDocumentDetail>;
|
|
90
|
+
createProjectDocument(orgSlug: string, projectKey: string, input: CreateDocumentInput): Promise<MCPDocumentDetail>;
|
|
91
|
+
updateDocument(documentId: string, input: UpdateDocumentInput): Promise<MCPDocumentDetail>;
|
|
92
|
+
deleteDocument(documentId: string): Promise<void>;
|
|
93
|
+
listBoardTemplates(orgSlug: string): Promise<{
|
|
94
|
+
id: string;
|
|
95
|
+
name: string;
|
|
96
|
+
description: string | null;
|
|
97
|
+
isDefault: boolean;
|
|
98
|
+
columnCount: number;
|
|
99
|
+
}[]>;
|
|
100
|
+
applyBoardTemplate(orgSlug: string, templateId: string, projectKey: string): Promise<{
|
|
101
|
+
message: string;
|
|
102
|
+
templateName: string;
|
|
103
|
+
projectKey: string;
|
|
104
|
+
columnsUpdated: number;
|
|
105
|
+
}>;
|
|
106
|
+
cloneBoardConfiguration(orgSlug: string, sourceProjectKey: string, targetProjectKey: string): Promise<{
|
|
107
|
+
message: string;
|
|
108
|
+
columnsUpdated: number;
|
|
109
|
+
}>;
|
|
110
|
+
getBoardConfiguration(orgSlug: string, projectKey: string): Promise<MCPBoard>;
|
|
111
|
+
updateColumnConfiguration(orgSlug: string, projectKey: string, boardId: string, columnId: string, input: UpdateColumnConfigInput): Promise<MCPColumnConfiguration>;
|
|
112
|
+
getColumnConfiguration(orgSlug: string, projectKey: string, boardId: string, columnId: string): Promise<MCPColumnConfiguration | null>;
|
|
113
|
+
getSession(): Promise<McpSessionResponse | null>;
|
|
114
|
+
setSession(input: SetSessionInput): Promise<McpSessionResponse>;
|
|
115
|
+
clearSession(): Promise<void>;
|
|
116
|
+
recordToolCall(toolName: string, params: object): Promise<void>;
|
|
117
|
+
}
|
|
118
|
+
export declare function getApiClient(): LlamaApiClient;
|
|
119
|
+
export declare function resetApiClient(): void;
|
|
120
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|