|
12120 | 12120 | "type": "number", |
12121 | 12121 | "description": "Token count for this tool" |
12122 | 12122 | }, |
| 12123 | + "is_disabled": { |
| 12124 | + "type": "boolean", |
| 12125 | + "description": "Whether the tool is disabled by team admin" |
| 12126 | + }, |
12123 | 12127 | "discovered_at": { |
12124 | 12128 | "type": "string", |
12125 | 12129 | "description": "ISO 8601 timestamp when tool was discovered" |
|
12135 | 12139 | "description", |
12136 | 12140 | "input_schema", |
12137 | 12141 | "token_count", |
| 12142 | + "is_disabled", |
12138 | 12143 | "discovered_at", |
12139 | 12144 | "updated_at" |
12140 | 12145 | ] |
@@ -12564,6 +12569,256 @@ |
12564 | 12569 | } |
12565 | 12570 | } |
12566 | 12571 | }, |
| 12572 | + "/api/teams/{teamId}/mcp/installations/{installationId}/tools/{toolId}": { |
| 12573 | + "patch": { |
| 12574 | + "summary": "Toggle tool disabled status", |
| 12575 | + "tags": [ |
| 12576 | + "MCP Tools" |
| 12577 | + ], |
| 12578 | + "description": "Enable or disable an MCP tool for a specific installation. When disabled, the satellite will return an LLM-friendly error message. Requires mcp.tools.manage permission (team_admin or global_admin).", |
| 12579 | + "requestBody": { |
| 12580 | + "content": { |
| 12581 | + "application/json": { |
| 12582 | + "schema": { |
| 12583 | + "type": "object", |
| 12584 | + "properties": { |
| 12585 | + "is_disabled": { |
| 12586 | + "type": "boolean", |
| 12587 | + "description": "Whether to disable (true) or enable (false) the tool" |
| 12588 | + } |
| 12589 | + }, |
| 12590 | + "required": [ |
| 12591 | + "is_disabled" |
| 12592 | + ], |
| 12593 | + "additionalProperties": false |
| 12594 | + } |
| 12595 | + } |
| 12596 | + }, |
| 12597 | + "required": true |
| 12598 | + }, |
| 12599 | + "parameters": [ |
| 12600 | + { |
| 12601 | + "schema": { |
| 12602 | + "type": "string", |
| 12603 | + "minLength": 1 |
| 12604 | + }, |
| 12605 | + "in": "path", |
| 12606 | + "name": "teamId", |
| 12607 | + "required": true, |
| 12608 | + "description": "Team ID that owns the installation" |
| 12609 | + }, |
| 12610 | + { |
| 12611 | + "schema": { |
| 12612 | + "type": "string", |
| 12613 | + "minLength": 1 |
| 12614 | + }, |
| 12615 | + "in": "path", |
| 12616 | + "name": "installationId", |
| 12617 | + "required": true, |
| 12618 | + "description": "Installation ID" |
| 12619 | + }, |
| 12620 | + { |
| 12621 | + "schema": { |
| 12622 | + "type": "string", |
| 12623 | + "minLength": 1 |
| 12624 | + }, |
| 12625 | + "in": "path", |
| 12626 | + "name": "toolId", |
| 12627 | + "required": true, |
| 12628 | + "description": "Tool metadata ID" |
| 12629 | + } |
| 12630 | + ], |
| 12631 | + "security": [ |
| 12632 | + { |
| 12633 | + "cookieAuth": [] |
| 12634 | + } |
| 12635 | + ], |
| 12636 | + "responses": { |
| 12637 | + "200": { |
| 12638 | + "description": "Tool status updated successfully", |
| 12639 | + "content": { |
| 12640 | + "application/json": { |
| 12641 | + "schema": { |
| 12642 | + "type": "object", |
| 12643 | + "properties": { |
| 12644 | + "success": { |
| 12645 | + "type": "boolean", |
| 12646 | + "description": "Indicates if the operation was successful" |
| 12647 | + }, |
| 12648 | + "data": { |
| 12649 | + "type": "object", |
| 12650 | + "properties": { |
| 12651 | + "tool_id": { |
| 12652 | + "type": "string", |
| 12653 | + "description": "Tool metadata unique identifier" |
| 12654 | + }, |
| 12655 | + "tool_name": { |
| 12656 | + "type": "string", |
| 12657 | + "description": "Name of the tool" |
| 12658 | + }, |
| 12659 | + "is_disabled": { |
| 12660 | + "type": "boolean", |
| 12661 | + "description": "Current disabled status" |
| 12662 | + }, |
| 12663 | + "command_id": { |
| 12664 | + "type": "string", |
| 12665 | + "description": "Satellite command ID for tracking" |
| 12666 | + }, |
| 12667 | + "message": { |
| 12668 | + "type": "string", |
| 12669 | + "description": "Human-readable status message" |
| 12670 | + } |
| 12671 | + }, |
| 12672 | + "required": [ |
| 12673 | + "tool_id", |
| 12674 | + "tool_name", |
| 12675 | + "is_disabled", |
| 12676 | + "message" |
| 12677 | + ] |
| 12678 | + } |
| 12679 | + }, |
| 12680 | + "required": [ |
| 12681 | + "success", |
| 12682 | + "data" |
| 12683 | + ], |
| 12684 | + "description": "Tool status updated successfully" |
| 12685 | + } |
| 12686 | + } |
| 12687 | + } |
| 12688 | + }, |
| 12689 | + "401": { |
| 12690 | + "description": "Unauthorized - Authentication required", |
| 12691 | + "content": { |
| 12692 | + "application/json": { |
| 12693 | + "schema": { |
| 12694 | + "type": "object", |
| 12695 | + "properties": { |
| 12696 | + "success": { |
| 12697 | + "type": "boolean", |
| 12698 | + "default": false, |
| 12699 | + "description": "Indicates failure" |
| 12700 | + }, |
| 12701 | + "error": { |
| 12702 | + "type": "string", |
| 12703 | + "description": "Error message detailing what went wrong" |
| 12704 | + } |
| 12705 | + }, |
| 12706 | + "required": [ |
| 12707 | + "success", |
| 12708 | + "error" |
| 12709 | + ], |
| 12710 | + "description": "Unauthorized - Authentication required" |
| 12711 | + } |
| 12712 | + } |
| 12713 | + } |
| 12714 | + }, |
| 12715 | + "403": { |
| 12716 | + "description": "Forbidden - Insufficient permissions or not a team member", |
| 12717 | + "content": { |
| 12718 | + "application/json": { |
| 12719 | + "schema": { |
| 12720 | + "type": "object", |
| 12721 | + "properties": { |
| 12722 | + "success": { |
| 12723 | + "type": "boolean", |
| 12724 | + "default": false, |
| 12725 | + "description": "Indicates failure" |
| 12726 | + }, |
| 12727 | + "error": { |
| 12728 | + "type": "string", |
| 12729 | + "description": "Error message detailing what went wrong" |
| 12730 | + } |
| 12731 | + }, |
| 12732 | + "required": [ |
| 12733 | + "success", |
| 12734 | + "error" |
| 12735 | + ], |
| 12736 | + "description": "Forbidden - Insufficient permissions or not a team member" |
| 12737 | + } |
| 12738 | + } |
| 12739 | + } |
| 12740 | + }, |
| 12741 | + "404": { |
| 12742 | + "description": "Not Found - Tool or installation does not exist", |
| 12743 | + "content": { |
| 12744 | + "application/json": { |
| 12745 | + "schema": { |
| 12746 | + "type": "object", |
| 12747 | + "properties": { |
| 12748 | + "success": { |
| 12749 | + "type": "boolean", |
| 12750 | + "default": false, |
| 12751 | + "description": "Indicates failure" |
| 12752 | + }, |
| 12753 | + "error": { |
| 12754 | + "type": "string", |
| 12755 | + "description": "Error message detailing what went wrong" |
| 12756 | + } |
| 12757 | + }, |
| 12758 | + "required": [ |
| 12759 | + "success", |
| 12760 | + "error" |
| 12761 | + ], |
| 12762 | + "description": "Not Found - Tool or installation does not exist" |
| 12763 | + } |
| 12764 | + } |
| 12765 | + } |
| 12766 | + }, |
| 12767 | + "500": { |
| 12768 | + "description": "Internal Server Error", |
| 12769 | + "content": { |
| 12770 | + "application/json": { |
| 12771 | + "schema": { |
| 12772 | + "type": "object", |
| 12773 | + "properties": { |
| 12774 | + "success": { |
| 12775 | + "type": "boolean", |
| 12776 | + "default": false, |
| 12777 | + "description": "Indicates failure" |
| 12778 | + }, |
| 12779 | + "error": { |
| 12780 | + "type": "string", |
| 12781 | + "description": "Error message detailing what went wrong" |
| 12782 | + } |
| 12783 | + }, |
| 12784 | + "required": [ |
| 12785 | + "success", |
| 12786 | + "error" |
| 12787 | + ], |
| 12788 | + "description": "Internal Server Error" |
| 12789 | + } |
| 12790 | + } |
| 12791 | + } |
| 12792 | + }, |
| 12793 | + "503": { |
| 12794 | + "description": "Service Unavailable - No active satellite available", |
| 12795 | + "content": { |
| 12796 | + "application/json": { |
| 12797 | + "schema": { |
| 12798 | + "type": "object", |
| 12799 | + "properties": { |
| 12800 | + "success": { |
| 12801 | + "type": "boolean", |
| 12802 | + "default": false, |
| 12803 | + "description": "Indicates failure" |
| 12804 | + }, |
| 12805 | + "error": { |
| 12806 | + "type": "string", |
| 12807 | + "description": "Error message detailing what went wrong" |
| 12808 | + } |
| 12809 | + }, |
| 12810 | + "required": [ |
| 12811 | + "success", |
| 12812 | + "error" |
| 12813 | + ], |
| 12814 | + "description": "Service Unavailable - No active satellite available" |
| 12815 | + } |
| 12816 | + } |
| 12817 | + } |
| 12818 | + } |
| 12819 | + } |
| 12820 | + } |
| 12821 | + }, |
12567 | 12822 | "/api/teams/{teamId}/satellites": { |
12568 | 12823 | "get": { |
12569 | 12824 | "summary": "Get available satellites for team", |
|
0 commit comments