@utaba/ucm-mcp-server 1.1.9 → 4.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.
- package/README.md +13 -13
- package/dist/clients/UcmApiClient.d.ts +1 -1
- package/dist/clients/UcmApiClient.js +1 -1
- package/dist/index.js +1 -1
- package/dist/server/McpServer.js +2 -2
- package/dist/server/ToolRegistry.d.ts +2 -2
- package/dist/tools/base/BaseToolController.d.ts +3 -3
- package/dist/tools/core/DeleteArtifactTool.d.ts +2 -2
- package/dist/tools/core/DeleteArtifactTool.js +1 -1
- package/dist/tools/core/EditArtifactMetadataTool.d.ts +2 -2
- package/dist/tools/core/EditArtifactMetadataTool.js +1 -1
- package/dist/tools/core/GetArtifactTool.d.ts +2 -2
- package/dist/tools/core/GetArtifactTool.js +1 -1
- package/dist/tools/core/GetArtifactVersionsTool.d.ts +2 -2
- package/dist/tools/core/GetArtifactVersionsTool.js +1 -1
- package/dist/tools/core/GetChunkTool.d.ts +2 -2
- package/dist/tools/core/GetChunkTool.js +1 -1
- package/dist/tools/core/ListArtifactsTool.d.ts +2 -2
- package/dist/tools/core/ListArtifactsTool.js +1 -1
- package/dist/tools/core/PublishArtifactFromFileTool.d.ts +2 -2
- package/dist/tools/core/PublishArtifactFromFileTool.js +1 -1
- package/dist/tools/core/PublishArtifactTool.d.ts +2 -2
- package/dist/tools/core/PublishArtifactTool.js +2 -2
- package/dist/tools/core/SearchArtifactsTool.d.ts +2 -2
- package/dist/tools/core/SearchArtifactsTool.js +1 -1
- package/dist/tools/repository/CreateRepositoryTool.d.ts +2 -2
- package/dist/tools/repository/CreateRepositoryTool.js +1 -1
- package/dist/tools/repository/DeleteRepositoryGuidanceTool.d.ts +2 -2
- package/dist/tools/repository/DeleteRepositoryGuidanceTool.js +1 -1
- package/dist/tools/repository/GetRepositoryTool.d.ts +2 -2
- package/dist/tools/repository/GetRepositoryTool.js +1 -1
- package/dist/tools/repository/UpdateRepositoryTool.d.ts +2 -2
- package/dist/tools/repository/UpdateRepositoryTool.js +1 -1
- package/dist/tools/utility/AuthorIndexTool.d.ts +2 -2
- package/dist/tools/utility/AuthorIndexTool.js +1 -1
- package/dist/tools/utility/AuthorRecentsTool.d.ts +2 -2
- package/dist/tools/utility/AuthorRecentsTool.js +1 -1
- package/dist/tools/utility/HealthCheckController.d.ts +2 -2
- package/dist/tools/utility/HealthCheckController.js +2 -2
- package/dist/tools/utility/ListRepositoriesTool.d.ts +2 -2
- package/dist/tools/utility/ListRepositoriesTool.js +1 -1
- package/dist/tools/utility/QuickstartTool.d.ts +2 -2
- package/dist/tools/utility/QuickstartTool.js +2 -2
- package/dist/tools/utility/SubmitFeedbackTool.d.ts +2 -2
- package/dist/tools/utility/SubmitFeedbackTool.js +1 -1
- package/dist/utils/McpErrorHandler.js +1 -1
- package/package.json +1 -1
- package/package.json.backup +1 -1
package/README.md
CHANGED
|
@@ -6,28 +6,28 @@ Get your auth token from https://ucm.utaba.ai
|
|
|
6
6
|
|
|
7
7
|
## Configuration
|
|
8
8
|
|
|
9
|
-
- `--auth-token <token>` (required): Authentication token in format `{
|
|
9
|
+
- `--auth-token <token>` (required): Authentication token in format `{apikey}`
|
|
10
10
|
|
|
11
11
|
## Available MCP Tools
|
|
12
12
|
|
|
13
|
-
The server provides 11 MCP tools following the `
|
|
13
|
+
The server provides 11 MCP tools following the `ucm_` naming convention:
|
|
14
14
|
|
|
15
15
|
### System Tools
|
|
16
|
-
- `
|
|
17
|
-
- `
|
|
16
|
+
- `ucm_health_check` - Check MCP server and UCM API connectivity
|
|
17
|
+
- `ucm_connect` - Get the UCM quickstart guide (Tell your AI to load this first)
|
|
18
18
|
|
|
19
19
|
### Discovery Tools
|
|
20
|
-
- `
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
20
|
+
- `ucm_get_author_index` - Generate dynamic markdown index for an author
|
|
21
|
+
- `ucm_list_repositories` - List all repositories for an author
|
|
22
|
+
- `ucm_list_artifacts` - Browse the 4-level hierarchy
|
|
23
23
|
|
|
24
24
|
### Artifact Management
|
|
25
|
-
- `
|
|
26
|
-
- `
|
|
27
|
-
- `
|
|
28
|
-
- `
|
|
29
|
-
- `
|
|
30
|
-
- `
|
|
25
|
+
- `ucm_get_artifact` - Retrieve artifact content with auto-chunking
|
|
26
|
+
- `ucm_get_chunk` - Get chunks of large responses
|
|
27
|
+
- `ucm_publish_artifact` - Create/update artifacts
|
|
28
|
+
- `ucm_publish_artifact_fromfile` - File-based publishing (preferred for large files)
|
|
29
|
+
- `ucm_delete_artifact` - Remove artifacts
|
|
30
|
+
- `ucm_get_artifact_versions` - Get version history
|
|
31
31
|
|
|
32
32
|
## Usage with Claude Desktop
|
|
33
33
|
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ async function main() {
|
|
|
11
11
|
const program = new Command();
|
|
12
12
|
program
|
|
13
13
|
.name('ucm-mcp-server')
|
|
14
|
-
.description('Universal Context Manager - Read the
|
|
14
|
+
.description('Universal Context Manager - Read the ucm_connect tool first to avoid mistakes')
|
|
15
15
|
.version('1.0.5')
|
|
16
16
|
.option('-u, --ucm-url <url>', 'UCM API base URL (defaults to https://ucm.utaba.ai)')
|
|
17
17
|
.option('-p, --port <port>', 'Server port', '3001')
|
package/dist/server/McpServer.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import { McpHandler } from './McpHandler.js';
|
|
5
|
-
import {
|
|
5
|
+
import { UcmLocalApiClient } from '../clients/UcmApiClient.js';
|
|
6
6
|
import { ToolRegistry } from './ToolRegistry.js';
|
|
7
7
|
export class McpServer {
|
|
8
8
|
config;
|
|
@@ -14,7 +14,7 @@ export class McpServer {
|
|
|
14
14
|
constructor(config, logger) {
|
|
15
15
|
this.config = config;
|
|
16
16
|
this.logger = logger;
|
|
17
|
-
this.ucmClient = new
|
|
17
|
+
this.ucmClient = new UcmLocalApiClient(config.ucmApiUrl, config.authToken, config.requestTimeout, config.authorId);
|
|
18
18
|
this.toolRegistry = new ToolRegistry(this.ucmClient, this.logger, config.trustedAuthors, config.authorId, config.ucmApiUrl);
|
|
19
19
|
this.handler = new McpHandler(this.toolRegistry, this.logger, config.authorId);
|
|
20
20
|
this.server = new Server({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UcmLocalApiClient } from '../clients/UcmApiClient.js';
|
|
2
2
|
import { ILogger } from '../interfaces/ILogger.js';
|
|
3
3
|
export interface ToolInfo {
|
|
4
4
|
name: string;
|
|
@@ -12,7 +12,7 @@ export declare class ToolRegistry {
|
|
|
12
12
|
private authorId?;
|
|
13
13
|
private baseUrl?;
|
|
14
14
|
private tools;
|
|
15
|
-
constructor(ucmClient:
|
|
15
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, trustedAuthors?: string[], authorId?: string | undefined, baseUrl?: string | undefined);
|
|
16
16
|
private registerTools;
|
|
17
17
|
private registerTool;
|
|
18
18
|
listTools(): Promise<ToolInfo[]>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IMcpTool } from '../../interfaces/IMcpTool.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare abstract class BaseToolController implements IMcpTool {
|
|
5
|
-
protected ucmClient:
|
|
5
|
+
protected ucmClient: UcmLocalApiClient;
|
|
6
6
|
protected logger: ILogger;
|
|
7
7
|
protected publishingAuthorId?: string | undefined;
|
|
8
|
-
constructor(ucmClient:
|
|
8
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string | undefined);
|
|
9
9
|
abstract get name(): string;
|
|
10
10
|
abstract get description(): string;
|
|
11
11
|
abstract get inputSchema(): any;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class DeleteArtifactTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,7 +4,7 @@ export class DeleteArtifactTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_delete_artifact';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
10
|
return 'Delete a UCM artifact by path and version. This action cannot be undone. Only the latest or specified version is deleted.';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class EditArtifactMetadataTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -6,7 +6,7 @@ export class EditArtifactMetadataTool extends BaseToolController {
|
|
|
6
6
|
super(ucmClient, logger, publishingAuthorId);
|
|
7
7
|
}
|
|
8
8
|
get name() {
|
|
9
|
-
return '
|
|
9
|
+
return 'ucm_edit_artifact_metadata';
|
|
10
10
|
}
|
|
11
11
|
get description() {
|
|
12
12
|
return 'Edit artifact metadata and optionally move artifacts to new locations. Supports updating description, namespace, filename, MIME type, technology, and tags. Move operations affect all versions while metadata-only updates apply to latest version only.';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class GetArtifactTool extends BaseToolController {
|
|
5
5
|
private trustedAuthors;
|
|
6
|
-
constructor(ucmClient:
|
|
6
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string, trustedAuthors?: string[]);
|
|
7
7
|
get name(): string;
|
|
8
8
|
get description(): string;
|
|
9
9
|
get inputSchema(): any;
|
|
@@ -8,7 +8,7 @@ export class GetArtifactTool extends BaseToolController {
|
|
|
8
8
|
this.trustedAuthors = trustedAuthors;
|
|
9
9
|
}
|
|
10
10
|
get name() {
|
|
11
|
-
return '
|
|
11
|
+
return 'ucm_get_artifact';
|
|
12
12
|
}
|
|
13
13
|
get description() {
|
|
14
14
|
return 'Retrieve UCM artifact content with metadata. Large files are automatically chunked.';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class GetArtifactVersionsTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -5,7 +5,7 @@ export class GetArtifactVersionsTool extends BaseToolController {
|
|
|
5
5
|
super(ucmClient, logger, publishingAuthorId);
|
|
6
6
|
}
|
|
7
7
|
get name() {
|
|
8
|
-
return '
|
|
8
|
+
return 'ucm_get_artifact_versions';
|
|
9
9
|
}
|
|
10
10
|
get description() {
|
|
11
11
|
return 'Get all available versions of a specific UCM artifact';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class GetChunkTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -6,7 +6,7 @@ export class GetChunkTool extends BaseToolController {
|
|
|
6
6
|
super(ucmClient, logger, publishingAuthorId);
|
|
7
7
|
}
|
|
8
8
|
get name() {
|
|
9
|
-
return '
|
|
9
|
+
return 'ucm_get_chunk';
|
|
10
10
|
}
|
|
11
11
|
get description() {
|
|
12
12
|
return 'Retrieve the next chunk of a large UCM artifact response';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class ListArtifactsTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -5,7 +5,7 @@ export class ListArtifactsTool extends BaseToolController {
|
|
|
5
5
|
super(ucmClient, logger, publishingAuthorId);
|
|
6
6
|
}
|
|
7
7
|
get name() {
|
|
8
|
-
return '
|
|
8
|
+
return 'ucm_list_artifacts';
|
|
9
9
|
}
|
|
10
10
|
get description() {
|
|
11
11
|
return `List artifacts with exploratory browsing support. Can list authors, repositories, categories, subcategories, or artifacts depending on path depth. ${this.publishingAuthorId ? "Your author value is '" + this.publishingAuthorId + "'" : ''}`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class PublishArtifactFromFileTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -8,7 +8,7 @@ export class PublishArtifactFromFileTool extends BaseToolController {
|
|
|
8
8
|
super(ucmClient, logger, publishingAuthorId);
|
|
9
9
|
}
|
|
10
10
|
get name() {
|
|
11
|
-
return '
|
|
11
|
+
return 'ucm_publish_artifact_fromfile';
|
|
12
12
|
}
|
|
13
13
|
get description() {
|
|
14
14
|
return 'Create or update UCM artifacts from a file URI. Supports versioning. PREFERRED METHOD: Use this tool for file-based content as it is much faster and more efficient. Pass the local file path as a file:// URI (e.g., "file:///path/to/file.txt").';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class PublishArtifactTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -6,10 +6,10 @@ export class PublishArtifactTool extends BaseToolController {
|
|
|
6
6
|
super(ucmClient, logger, publishingAuthorId);
|
|
7
7
|
}
|
|
8
8
|
get name() {
|
|
9
|
-
return '
|
|
9
|
+
return 'ucm_publish_artifact';
|
|
10
10
|
}
|
|
11
11
|
get description() {
|
|
12
|
-
return 'Create or update UCM artifacts with content and metadata. Supports versioning and automatic conflict detection. The API automatically detects whether to create or update based on existing artifacts. NOTE: Only use this tool for small data - use
|
|
12
|
+
return 'Create or update UCM artifacts with content and metadata. Supports versioning and automatic conflict detection. The API automatically detects whether to create or update based on existing artifacts. NOTE: Only use this tool for small data - use ucm_publish_artifact_fromfile for files as it is much faster and more efficient.';
|
|
13
13
|
}
|
|
14
14
|
get inputSchema() {
|
|
15
15
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class SearchArtifactsTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,7 +4,7 @@ export class SearchArtifactsTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_search_artifacts';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
10
|
return `Search artifacts by text across multiple metadata fields with privacy filtering. Searches namespace, filename, description, and tags fields. ${this.publishingAuthorId ? "Your author value is '" + this.publishingAuthorId + "'" : ''}`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class CreateRepositoryTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -5,7 +5,7 @@ export class CreateRepositoryTool extends BaseToolController {
|
|
|
5
5
|
super(ucmClient, logger, publishingAuthorId);
|
|
6
6
|
}
|
|
7
7
|
get name() {
|
|
8
|
-
return '
|
|
8
|
+
return 'ucm_create_repository';
|
|
9
9
|
}
|
|
10
10
|
get description() {
|
|
11
11
|
const authorInfo = this.publishingAuthorId ? ` Your author id is '${this.publishingAuthorId}'.` : '';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class DeleteRepositoryGuidanceTool extends BaseToolController {
|
|
5
5
|
private baseUrl?;
|
|
6
|
-
constructor(ucmClient:
|
|
6
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string, baseUrl?: string | undefined);
|
|
7
7
|
get name(): string;
|
|
8
8
|
get description(): string;
|
|
9
9
|
get inputSchema(): any;
|
|
@@ -7,7 +7,7 @@ export class DeleteRepositoryGuidanceTool extends BaseToolController {
|
|
|
7
7
|
this.baseUrl = baseUrl;
|
|
8
8
|
}
|
|
9
9
|
get name() {
|
|
10
|
-
return '
|
|
10
|
+
return 'ucm_delete_repository_guidance';
|
|
11
11
|
}
|
|
12
12
|
get description() {
|
|
13
13
|
return `Provides guidance for deleting a repository via the web UI.`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class GetRepositoryTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -5,7 +5,7 @@ export class GetRepositoryTool extends BaseToolController {
|
|
|
5
5
|
super(ucmClient, logger, publishingAuthorId);
|
|
6
6
|
}
|
|
7
7
|
get name() {
|
|
8
|
-
return '
|
|
8
|
+
return 'ucm_get_repository';
|
|
9
9
|
}
|
|
10
10
|
get description() {
|
|
11
11
|
const authorInfo = this.publishingAuthorId ? ` Your author id is '${this.publishingAuthorId}'.` : '';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class UpdateRepositoryTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -5,7 +5,7 @@ export class UpdateRepositoryTool extends BaseToolController {
|
|
|
5
5
|
super(ucmClient, logger, publishingAuthorId);
|
|
6
6
|
}
|
|
7
7
|
get name() {
|
|
8
|
-
return '
|
|
8
|
+
return 'ucm_update_repository';
|
|
9
9
|
}
|
|
10
10
|
get description() {
|
|
11
11
|
const authorInfo = this.publishingAuthorId ? ` Your author id is '${this.publishingAuthorId}'.` : '';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class AuthorIndexTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,7 +4,7 @@ export class AuthorIndexTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_get_author_index';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
10
|
return `Discover a dynamic markdown index guide for AI assistants working with an author\'s content. Your author id is '${this.publishingAuthorId}'`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class AuthorRecentsTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,7 +4,7 @@ export class AuthorRecentsTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_get_author_recents';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
10
|
return `Generate author activity tracking showing the 20 most recently modified artifacts within an author context. Your author id is '${this.publishingAuthorId}'`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class HealthCheckController extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
2
|
//import packageJson from '../../../../publish/package.json' assert { type: 'json' };
|
|
3
|
-
const version = '
|
|
3
|
+
const version = '3.0.0'; //TODO: tried to sync this with packageJson but it didn't work.
|
|
4
4
|
export class HealthCheckController extends BaseToolController {
|
|
5
5
|
constructor(ucmClient, logger, publishingAuthorId) {
|
|
6
6
|
super(ucmClient, logger, publishingAuthorId);
|
|
7
7
|
}
|
|
8
8
|
get name() {
|
|
9
|
-
return '
|
|
9
|
+
return 'ucm_health_check';
|
|
10
10
|
}
|
|
11
11
|
get description() {
|
|
12
12
|
return 'Check MCP server and UCM API connectivity status';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class ListRepositoriesTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,7 +4,7 @@ export class ListRepositoriesTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_list_repositories';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
10
|
return 'List all repositories for a specific author with pagination and statistics';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class QuickstartTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,10 +4,10 @@ export class QuickstartTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_connect';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
|
-
return 'CRITICAL MANDATORY READING: READ THIS FIRST before using any other tools as it will guide you to understand how to use the UCM system and MCP tools effectively';
|
|
10
|
+
return 'CRITICAL MANDATORY READING QUICKSTART: READ THIS FIRST before using any other tools as it will guide you to understand how to use the UCM system and MCP tools effectively';
|
|
11
11
|
}
|
|
12
12
|
get inputSchema() {
|
|
13
13
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseToolController } from '../base/BaseToolController.js';
|
|
2
|
-
import {
|
|
2
|
+
import { UcmLocalApiClient } from '../../clients/UcmApiClient.js';
|
|
3
3
|
import { ILogger } from '../../interfaces/ILogger.js';
|
|
4
4
|
export declare class SubmitFeedbackTool extends BaseToolController {
|
|
5
|
-
constructor(ucmClient:
|
|
5
|
+
constructor(ucmClient: UcmLocalApiClient, logger: ILogger, publishingAuthorId?: string);
|
|
6
6
|
get name(): string;
|
|
7
7
|
get description(): string;
|
|
8
8
|
get inputSchema(): any;
|
|
@@ -4,7 +4,7 @@ export class SubmitFeedbackTool extends BaseToolController {
|
|
|
4
4
|
super(ucmClient, logger, publishingAuthorId);
|
|
5
5
|
}
|
|
6
6
|
get name() {
|
|
7
|
-
return '
|
|
7
|
+
return 'ucm_submit_user_issue_or_feedback';
|
|
8
8
|
}
|
|
9
9
|
get description() {
|
|
10
10
|
return 'Submit user feedback, bug reports, feature requests ONLY if the user requests it and they want to send details to the UCM development team. Do NOT include sensitive or project related details. Ask the user before submitting the data if it is appropriate.';
|
|
@@ -51,7 +51,7 @@ export class McpErrorHandler {
|
|
|
51
51
|
return new McpError(McpErrorCode.InvalidParams, 'Parameter validation failed', { originalError: error });
|
|
52
52
|
}
|
|
53
53
|
if (message?.includes('ECONNREFUSED')) {
|
|
54
|
-
return new McpError(McpErrorCode.ExternalServiceUnavailable, 'External API is unavailable, try the
|
|
54
|
+
return new McpError(McpErrorCode.ExternalServiceUnavailable, 'External API is unavailable, try the ucm_health_check tool', { originalError: error });
|
|
55
55
|
}
|
|
56
56
|
if (message?.includes('validation') || message?.includes('invalid') ||
|
|
57
57
|
message?.includes('required') || message?.includes('must be')) {
|
package/package.json
CHANGED