manage_workspace
Configure workspace settings, retrieve usage data, and update information for Tally forms management.
Instructions
Manage workspace settings and information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform on workspace | |
| settings | No |
Implementation Reference
- src/server.ts:1629-1648 (handler)The main handler logic for the 'manage_workspace' tool in the _handleToolsCall method. It handles the 'get_info' action by calling listWorkspaces on the WorkspaceManagementTool instance and returns the result as text. Other actions return a placeholder message.case 'manage_workspace': if (args && args.action === 'get_info') { const workspaceInfo = await this.tools.workspaceManagement.listWorkspaces(); return { content: [ { type: 'text', text: JSON.stringify(workspaceInfo, null, 2) } ] }; } return { content: [ { type: 'text', text: 'Workspace management functionality is being implemented' } ] };
- src/server.ts:1512-1532 (schema)JSON Schema definition for the 'manage_workspace' tool input, including supported actions: get_info, update_settings, list_members.name: 'manage_workspace', description: 'Manage workspace settings and information', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['get_info', 'update_settings', 'list_members'], description: 'Action to perform on the workspace' }, settings: { type: 'object', properties: { name: { type: 'string', description: 'Workspace name' }, description: { type: 'string', description: 'Workspace description' } } } }, required: ['action'] } },
- src/server.ts:1732-1734 (registration)Registration of the generic tool call handler via MCP SDK's setRequestHandler for CallToolRequestSchema, which routes to _handleToolsCall containing the manage_workspace case.this.setRequestHandler(CallToolRequestSchema, async (request) => { return this._handleToolsCall(request); });
- src/tools/workspace-tool.ts:5-31 (helper)WorkspaceManagementTool class providing workspace operations, used by the manage_workspace handler. The listWorkspaces method is called for 'get_info' action.export class WorkspaceManagementTool { private workspaceService: WorkspaceService; constructor(apiClientConfig: TallyApiClientConfig = {}) { this.workspaceService = new WorkspaceService(apiClientConfig); } public async listWorkspaces(options: { page?: number; limit?: number } = {}): Promise<TallyWorkspacesResponse> { return this.workspaceService.getWorkspaces(options); } public async getWorkspaceDetails(workspaceId: string): Promise<TallyWorkspace> { return this.workspaceService.getWorkspace(workspaceId); } public async inviteUserToWorkspace(workspaceId: string, email: string, role: UserRole): Promise<any> { return this.workspaceService.inviteUser(workspaceId, email, role); } public async removeUserFromWorkspace(workspaceId: string, userId: string): Promise<any> { return this.workspaceService.removeUser(workspaceId, userId); } public async updateUserRoleInWorkspace(workspaceId: string, userId: string, role: UserRole): Promise<any> { return this.workspaceService.updateUserRole(workspaceId, userId, role); } }
- WorkspaceService class that delegates workspace operations to TallyApiClient, used by WorkspaceManagementTool.export class WorkspaceService { private apiClient: TallyApiClient; constructor(config: TallyApiClientConfig = {}) { this.apiClient = new TallyApiClient(config); } public async getWorkspaces(options: { page?: number; limit?: number } = {}): Promise<TallyWorkspacesResponse> { return this.apiClient.getWorkspaces(options); } public async getWorkspace(workspaceId: string): Promise<TallyWorkspace> { return this.apiClient.getWorkspace(workspaceId); } public async inviteUser(workspaceId: string, email: string, role: UserRole): Promise<any> { return this.apiClient.inviteUserToWorkspace(workspaceId, email, role); } public async removeUser(workspaceId: string, userId: string): Promise<any> { return this.apiClient.removeUserFromWorkspace(workspaceId, userId); } public async updateUserRole(workspaceId: string, userId: string, role: UserRole): Promise<any> { return this.apiClient.updateUserRole(workspaceId, userId, role); } }