@crypto512/jicon-mcp 0.7.0 → 1.0.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.
Files changed (133) hide show
  1. package/README.md +133 -381
  2. package/TOOL_LIST.md +810 -120
  3. package/dist/config/constants.d.ts +1 -0
  4. package/dist/config/constants.d.ts.map +1 -1
  5. package/dist/config/constants.js +1 -0
  6. package/dist/config/constants.js.map +1 -1
  7. package/dist/config/loader.d.ts +1 -0
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +27 -1
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +8 -0
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +2 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/client.d.ts +38 -0
  16. package/dist/confluence/client.d.ts.map +1 -1
  17. package/dist/confluence/client.js +117 -0
  18. package/dist/confluence/client.js.map +1 -1
  19. package/dist/confluence/tools.d.ts +102 -75
  20. package/dist/confluence/tools.d.ts.map +1 -1
  21. package/dist/confluence/tools.js +510 -151
  22. package/dist/confluence/tools.js.map +1 -1
  23. package/dist/confluence/types.d.ts +55 -1
  24. package/dist/confluence/types.d.ts.map +1 -1
  25. package/dist/index.js +88 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/jira/tools.d.ts +0 -5
  28. package/dist/jira/tools.d.ts.map +1 -1
  29. package/dist/jira/tools.js +40 -87
  30. package/dist/jira/tools.js.map +1 -1
  31. package/dist/permissions/filter.d.ts +5 -0
  32. package/dist/permissions/filter.d.ts.map +1 -1
  33. package/dist/permissions/filter.js +29 -12
  34. package/dist/permissions/filter.js.map +1 -1
  35. package/dist/permissions/tool-registry.d.ts +23 -25
  36. package/dist/permissions/tool-registry.d.ts.map +1 -1
  37. package/dist/permissions/tool-registry.js +41 -45
  38. package/dist/permissions/tool-registry.js.map +1 -1
  39. package/dist/permissions/write-home-validator.d.ts +35 -0
  40. package/dist/permissions/write-home-validator.d.ts.map +1 -0
  41. package/dist/permissions/write-home-validator.js +140 -0
  42. package/dist/permissions/write-home-validator.js.map +1 -0
  43. package/dist/tempo/tools.d.ts.map +1 -1
  44. package/dist/tempo/tools.js +43 -44
  45. package/dist/tempo/tools.js.map +1 -1
  46. package/dist/utils/buffer-tools.d.ts +119 -1
  47. package/dist/utils/buffer-tools.d.ts.map +1 -1
  48. package/dist/utils/buffer-tools.js +610 -3
  49. package/dist/utils/buffer-tools.js.map +1 -1
  50. package/dist/utils/content-buffer.d.ts +46 -0
  51. package/dist/utils/content-buffer.d.ts.map +1 -1
  52. package/dist/utils/content-buffer.js +108 -12
  53. package/dist/utils/content-buffer.js.map +1 -1
  54. package/dist/utils/http-client.d.ts.map +1 -1
  55. package/dist/utils/http-client.js +4 -4
  56. package/dist/utils/http-client.js.map +1 -1
  57. package/dist/utils/jicon-help.d.ts +29 -0
  58. package/dist/utils/jicon-help.d.ts.map +1 -0
  59. package/dist/utils/jicon-help.js +873 -0
  60. package/dist/utils/jicon-help.js.map +1 -0
  61. package/dist/utils/plantuml/client.d.ts +40 -0
  62. package/dist/utils/plantuml/client.d.ts.map +1 -0
  63. package/dist/utils/plantuml/client.js +306 -0
  64. package/dist/utils/plantuml/client.js.map +1 -0
  65. package/dist/utils/plantuml/docker-manager.d.ts +35 -0
  66. package/dist/utils/plantuml/docker-manager.d.ts.map +1 -0
  67. package/dist/utils/plantuml/docker-manager.js +280 -0
  68. package/dist/utils/plantuml/docker-manager.js.map +1 -0
  69. package/dist/utils/plantuml/index.d.ts +11 -0
  70. package/dist/utils/plantuml/index.d.ts.map +1 -0
  71. package/dist/utils/plantuml/index.js +16 -0
  72. package/dist/utils/plantuml/index.js.map +1 -0
  73. package/dist/utils/plantuml/service.d.ts +46 -0
  74. package/dist/utils/plantuml/service.d.ts.map +1 -0
  75. package/dist/utils/plantuml/service.js +96 -0
  76. package/dist/utils/plantuml/service.js.map +1 -0
  77. package/dist/utils/plantuml/tools.d.ts +65 -0
  78. package/dist/utils/plantuml/tools.d.ts.map +1 -0
  79. package/dist/utils/plantuml/tools.js +272 -0
  80. package/dist/utils/plantuml/tools.js.map +1 -0
  81. package/dist/utils/plantuml/types.d.ts +130 -0
  82. package/dist/utils/plantuml/types.d.ts.map +1 -0
  83. package/dist/utils/plantuml/types.js +66 -0
  84. package/dist/utils/plantuml/types.js.map +1 -0
  85. package/dist/utils/response-formatter.d.ts +14 -0
  86. package/dist/utils/response-formatter.d.ts.map +1 -1
  87. package/dist/utils/response-formatter.js +84 -1
  88. package/dist/utils/response-formatter.js.map +1 -1
  89. package/dist/utils/url-tools.d.ts +49 -0
  90. package/dist/utils/url-tools.d.ts.map +1 -0
  91. package/dist/utils/url-tools.js +141 -0
  92. package/dist/utils/url-tools.js.map +1 -0
  93. package/dist/utils/xhtml/confluence-schema.d.ts +55 -0
  94. package/dist/utils/xhtml/confluence-schema.d.ts.map +1 -0
  95. package/dist/utils/xhtml/confluence-schema.js +215 -0
  96. package/dist/utils/xhtml/confluence-schema.js.map +1 -0
  97. package/dist/utils/xhtml/index.d.ts +17 -0
  98. package/dist/utils/xhtml/index.d.ts.map +1 -0
  99. package/dist/utils/xhtml/index.js +21 -0
  100. package/dist/utils/xhtml/index.js.map +1 -0
  101. package/dist/utils/xhtml/operations.d.ts +100 -0
  102. package/dist/utils/xhtml/operations.d.ts.map +1 -0
  103. package/dist/utils/xhtml/operations.js +596 -0
  104. package/dist/utils/xhtml/operations.js.map +1 -0
  105. package/dist/utils/xhtml/parser.d.ts +64 -0
  106. package/dist/utils/xhtml/parser.d.ts.map +1 -0
  107. package/dist/utils/xhtml/parser.js +180 -0
  108. package/dist/utils/xhtml/parser.js.map +1 -0
  109. package/dist/utils/xhtml/plantuml.d.ts +112 -0
  110. package/dist/utils/xhtml/plantuml.d.ts.map +1 -0
  111. package/dist/utils/xhtml/plantuml.js +251 -0
  112. package/dist/utils/xhtml/plantuml.js.map +1 -0
  113. package/dist/utils/xhtml/selector.d.ts +35 -0
  114. package/dist/utils/xhtml/selector.d.ts.map +1 -0
  115. package/dist/utils/xhtml/selector.js +358 -0
  116. package/dist/utils/xhtml/selector.js.map +1 -0
  117. package/dist/utils/xhtml/serializer.d.ts +26 -0
  118. package/dist/utils/xhtml/serializer.d.ts.map +1 -0
  119. package/dist/utils/xhtml/serializer.js +170 -0
  120. package/dist/utils/xhtml/serializer.js.map +1 -0
  121. package/dist/utils/xhtml/types.d.ts +134 -0
  122. package/dist/utils/xhtml/types.d.ts.map +1 -0
  123. package/dist/utils/xhtml/types.js +65 -0
  124. package/dist/utils/xhtml/types.js.map +1 -0
  125. package/dist/utils/xhtml/validator.d.ts +67 -0
  126. package/dist/utils/xhtml/validator.d.ts.map +1 -0
  127. package/dist/utils/xhtml/validator.js +300 -0
  128. package/dist/utils/xhtml/validator.js.map +1 -0
  129. package/package.json +5 -1
  130. package/CLAUDE.md +0 -947
  131. package/CONTRIBUTING.md +0 -371
  132. package/DEVELOPMENT.md +0 -400
  133. package/JIRA_API_ANALYSIS.md +0 -275
package/CONTRIBUTING.md DELETED
@@ -1,371 +0,0 @@
1
- # Contributing to Jicon MCP Server
2
-
3
- Thank you for your interest in contributing to Jicon! This document provides guidelines and instructions for contributing to the project.
4
-
5
- ## Table of Contents
6
-
7
- - [Code of Conduct](#code-of-conduct)
8
- - [Getting Started](#getting-started)
9
- - [Development Workflow](#development-workflow)
10
- - [Project Structure](#project-structure)
11
- - [Coding Standards](#coding-standards)
12
- - [Testing Guidelines](#testing-guidelines)
13
- - [Pull Request Process](#pull-request-process)
14
- - [Release Process](#release-process)
15
-
16
- ## Code of Conduct
17
-
18
- By participating in this project, you agree to maintain a respectful and inclusive environment. We expect:
19
-
20
- - **Respectful Communication**: Be kind and considerate in all interactions
21
- - **Constructive Feedback**: Provide helpful and actionable feedback
22
- - **Collaboration**: Work together towards common goals
23
- - **Inclusivity**: Welcome contributors of all backgrounds and skill levels
24
-
25
- ## Getting Started
26
-
27
- ### Prerequisites
28
-
29
- - **Node.js**: Version 18.0.0 or higher
30
- - **npm**: Version 8.0.0 or higher
31
- - **Git**: For version control
32
- - **TypeScript Knowledge**: Familiarity with TypeScript is helpful
33
-
34
- ### Initial Setup
35
-
36
- 1. **Fork the Repository**
37
- ```bash
38
- # Fork on GitHub, then clone your fork
39
- git clone https://github.com/YOUR_USERNAME/jicon.git
40
- cd jicon
41
- ```
42
-
43
- 2. **Install Dependencies**
44
- ```bash
45
- npm install
46
- ```
47
-
48
- 3. **Build the Project**
49
- ```bash
50
- npm run build
51
- ```
52
-
53
- 4. **Run Tests**
54
- ```bash
55
- npm test
56
- ```
57
-
58
- 5. **Set Up Environment** (Optional for testing)
59
- ```bash
60
- cp .env.example .env
61
- # Edit .env with your test Jira/Confluence credentials
62
- ```
63
-
64
- ## Development Workflow
65
-
66
- ### Branch Strategy
67
-
68
- - `main` - Production-ready code
69
- - `develop` - Integration branch for features
70
- - `feature/*` - New features
71
- - `fix/*` - Bug fixes
72
- - `docs/*` - Documentation updates
73
-
74
- ### Making Changes
75
-
76
- 1. **Create a Branch**
77
- ```bash
78
- git checkout -b feature/your-feature-name
79
- ```
80
-
81
- 2. **Make Your Changes**
82
- - Write clear, focused commits
83
- - Follow coding standards
84
- - Add tests for new functionality
85
- - Update documentation as needed
86
-
87
- 3. **Run Tests**
88
- ```bash
89
- npm test
90
- npm run lint
91
- npm run build
92
- ```
93
-
94
- 4. **Commit Your Changes**
95
- ```bash
96
- git add .
97
- git commit -m "feat: add new feature description"
98
- ```
99
-
100
- ### Commit Message Format
101
-
102
- We follow [Conventional Commits](https://www.conventionalcommits.org/):
103
-
104
- ```
105
- <type>(<scope>): <subject>
106
-
107
- <body>
108
-
109
- <footer>
110
- ```
111
-
112
- **Types:**
113
- - `feat`: New feature
114
- - `fix`: Bug fix
115
- - `docs`: Documentation changes
116
- - `style`: Code style changes (formatting, etc.)
117
- - `refactor`: Code refactoring
118
- - `test`: Test additions or modifications
119
- - `chore`: Build process or auxiliary tool changes
120
-
121
- **Examples:**
122
- ```bash
123
- feat(jira): add support for custom fields in create issue
124
- fix(confluence): handle missing page version error
125
- docs(readme): update configuration examples
126
- test(jira): add tests for issue transitions
127
- ```
128
-
129
- ## Project Structure
130
-
131
- ```
132
- jicon/
133
- ├── src/
134
- │ ├── index.ts # MCP server entry point
135
- │ ├── types.ts # Common type definitions
136
- │ ├── jira/
137
- │ │ ├── client.ts # Jira API client
138
- │ │ ├── tools.ts # Jira MCP tools
139
- │ │ └── types.ts # Jira-specific types
140
- │ ├── confluence/
141
- │ │ ├── client.ts # Confluence API client
142
- │ │ ├── tools.ts # Confluence MCP tools
143
- │ │ └── types.ts # Confluence-specific types
144
- │ └── utils/
145
- │ ├── http-client.ts # HTTP utilities
146
- │ └── response-formatter.ts
147
- ├── tests/
148
- │ ├── jira/
149
- │ ├── confluence/
150
- │ └── utils/
151
- ├── dist/ # Compiled JavaScript (gitignored)
152
- ├── node_modules/ # Dependencies (gitignored)
153
- ├── package.json
154
- ├── tsconfig.json
155
- └── README.md
156
- ```
157
-
158
- ## Coding Standards
159
-
160
- ### TypeScript Guidelines
161
-
162
- 1. **Use Strong Types**
163
- ```typescript
164
- // Good
165
- function getIssue(issueKey: string): Promise<JiraIssue>
166
-
167
- // Avoid
168
- function getIssue(issueKey: any): Promise<any>
169
- ```
170
-
171
- 2. **Prefer Interfaces for Objects**
172
- ```typescript
173
- interface IssueData {
174
- key: string;
175
- summary: string;
176
- status: string;
177
- }
178
- ```
179
-
180
- 3. **Use Async/Await**
181
- ```typescript
182
- // Good
183
- async function fetchData() {
184
- const result = await client.getData();
185
- return result;
186
- }
187
-
188
- // Avoid
189
- function fetchData() {
190
- return client.getData().then(result => result);
191
- }
192
- ```
193
-
194
- 4. **Error Handling**
195
- ```typescript
196
- try {
197
- const result = await client.getIssue(key);
198
- return formatSuccess(result);
199
- } catch (error) {
200
- return formatError(isApiError(error) ? error : new Error(String(error)));
201
- }
202
- ```
203
-
204
- ### Code Style
205
-
206
- - **Indentation**: 2 spaces
207
- - **Quotes**: Double quotes for strings
208
- - **Semicolons**: Required
209
- - **Line Length**: Maximum 100 characters (flexible)
210
- - **Naming**:
211
- - `camelCase` for variables and functions
212
- - `PascalCase` for classes and types
213
- - `UPPER_CASE` for constants
214
-
215
- ### Documentation
216
-
217
- - Add JSDoc comments for public APIs
218
- - Document complex logic with inline comments
219
- - Update README.md for user-facing changes
220
- - Update CLAUDE.md for specification changes
221
-
222
- **Example:**
223
- ```typescript
224
- /**
225
- * Search for Jira issues using JQL
226
- * @param jql - Jira Query Language string
227
- * @param maxResults - Maximum number of results (default: 50)
228
- * @param fields - Optional array of fields to return
229
- * @returns Promise resolving to search results
230
- */
231
- async searchIssues(
232
- jql: string,
233
- maxResults: number = 50,
234
- fields?: string[]
235
- ): Promise<JiraSearchResult>
236
- ```
237
-
238
- ## Testing Guidelines
239
-
240
- ### Test Structure
241
-
242
- - **Unit Tests**: Test individual functions/methods
243
- - **Integration Tests**: Test component interactions
244
- - **E2E Tests**: Test complete workflows (planned)
245
-
246
- ### Writing Tests
247
-
248
- 1. **Test File Naming**: `*.test.ts`
249
- 2. **Use Descriptive Names**:
250
- ```typescript
251
- describe("JiraClient", () => {
252
- describe("searchIssues", () => {
253
- it("should return issues matching JQL query", () => {
254
- // Test implementation
255
- });
256
-
257
- it("should handle empty results", () => {
258
- // Test implementation
259
- });
260
- });
261
- });
262
- ```
263
-
264
- 3. **Test Both Success and Error Cases**
265
- 4. **Keep Tests Fast and Isolated**
266
- 5. **Mock External Dependencies**
267
-
268
- ### Running Tests
269
-
270
- ```bash
271
- # Run all tests
272
- npm test
273
-
274
- # Run specific test file
275
- node --test tests/jira/client.test.ts
276
-
277
- # Run with verbose output
278
- node --test --test-reporter=spec
279
- ```
280
-
281
- ## Pull Request Process
282
-
283
- ### Before Submitting
284
-
285
- 1. ✅ All tests pass (`npm test`)
286
- 2. ✅ Code builds successfully (`npm run build`)
287
- 3. ✅ Code follows style guidelines
288
- 4. ✅ Documentation is updated
289
- 5. ✅ Commit messages follow conventions
290
- 6. ✅ No sensitive data (credentials, tokens) in code
291
-
292
- ### Submitting a Pull Request
293
-
294
- 1. **Push to Your Fork**
295
- ```bash
296
- git push origin feature/your-feature-name
297
- ```
298
-
299
- 2. **Create Pull Request**
300
- - Go to the original repository on GitHub
301
- - Click "New Pull Request"
302
- - Select your fork and branch
303
- - Fill out the PR template
304
-
305
- 3. **PR Description Should Include**:
306
- - Summary of changes
307
- - Related issue numbers (if applicable)
308
- - Testing performed
309
- - Screenshots (for UI changes)
310
- - Breaking changes (if any)
311
-
312
- ### PR Review Process
313
-
314
- 1. **Automated Checks**: CI/CD runs tests and linting
315
- 2. **Code Review**: Maintainers review your code
316
- 3. **Feedback**: Address requested changes
317
- 4. **Approval**: Once approved, PR will be merged
318
-
319
- ## Release Process
320
-
321
- Releases are managed by maintainers following semantic versioning:
322
-
323
- - **Major** (1.0.0): Breaking changes
324
- - **Minor** (0.1.0): New features, backward compatible
325
- - **Patch** (0.0.1): Bug fixes, backward compatible
326
-
327
- ## Areas for Contribution
328
-
329
- ### High Priority
330
-
331
- - [ ] Add more comprehensive unit tests
332
- - [ ] Implement integration tests with mock APIs
333
- - [ ] Add rate limiting implementation
334
- - [ ] Implement caching layer
335
- - [ ] Improve error messages
336
-
337
- ### Medium Priority
338
-
339
- - [ ] Add bulk operations support
340
- - [ ] Custom field templates
341
- - [ ] Better TypeScript type inference
342
- - [ ] Performance optimizations
343
- - [ ] Documentation improvements
344
-
345
- ### Low Priority
346
-
347
- - [ ] Webhook support
348
- - [ ] Multi-instance configuration
349
- - [ ] CLI tool for testing
350
- - [ ] Web UI for configuration
351
-
352
- ## Getting Help
353
-
354
- - **Issues**: Open an issue for bugs or feature requests
355
- - **Discussions**: Use GitHub Discussions for questions
356
- - **Documentation**: Check README.md and CLAUDE.md
357
-
358
- ## Recognition
359
-
360
- All contributors will be:
361
- - Listed in the repository contributors page
362
- - Mentioned in release notes (for significant contributions)
363
- - Credited in the AUTHORS file (coming soon)
364
-
365
- ## License
366
-
367
- By contributing, you agree that your contributions will be licensed under the MIT License.
368
-
369
- ---
370
-
371
- **Thank you for contributing to Jicon! Your efforts help make this project better for everyone.** 🎉