Skip to content

MCP Servers (Model Context Protocol)

Sciorex includes built-in MCP servers that enable AI agents to interact with your workspace, tickets, and user interface. These servers follow the Model Context Protocol standard.

Overview

MCP servers provide tools that Claude can use during conversations and agent runs. Sciorex includes three built-in servers, plus one internal server for permissions:

ServerPurpose
sciorex-ticketsManage tickets, epics, subtasks, and track progress
sciorex-interactionsAsk questions, send notifications, request approvals
sciorex-resourcesCreate, read, update, and delete agents and flows
sciorex-permissions(Internal) Handle permission prompts when MCP permissions are enabled

Built-in Claude Tools

In addition to MCP servers, Claude has access to these built-in tools:

ToolDescription
BashExecute shell commands in your environment
BashOutputRetrieve output from background bash shells
ReadRead contents of files
WriteCreate or overwrite files
EditMake targeted edits to specific files
GlobFind files based on pattern matching
GrepSearch for patterns in file contents
WebFetchFetch content from URLs
WebSearchPerform web searches with domain filtering
TaskRun sub-agents for complex multi-step tasks
TodoWriteCreate and manage structured task lists
AskUserQuestionAsk the user multiple choice questions
NotebookEditModify Jupyter notebook cells
SkillExecute skills within the conversation
SlashCommandRun custom slash commands

sciorex-tickets Server

The sciorex-tickets MCP server provides comprehensive ticket and epic management capabilities. This server works directly with the Ticketing System.

Ticket Tools

sciorex_create_ticket

Create a new ticket in the current workspace.

Parameters:

ParameterTypeRequiredDescription
titlestringTicket title
descriptionstringDetailed description in markdown
typeenumfeature, bug, task, research, documentation, refactor
priorityenumcritical, high, medium, low
epicIdstringParent epic ID (e.g., "E-001")
labelsstring[]Tags/labels for the ticket
subtasksstring[]List of subtask titles to create

Example:

json
{
  "title": "Implement user authentication",
  "description": "Add OAuth2 login flow with Google and GitHub providers",
  "type": "feature",
  "priority": "high",
  "epicId": "E-001",
  "subtasks": ["Design login UI", "Implement OAuth flow", "Add session management"]
}

sciorex_get_ticket

Get full details of a ticket by ID.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID (e.g., "T-001")

Returns: Complete ticket object including subtasks, history, and relationships.

sciorex_update_ticket

Update one or more fields of a ticket.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID to update
titlestringNew title
descriptionstringNew description
typeenumNew type
priorityenumNew priority
labelsstring[]New labels
epicIdstring | nullNew epic ID or null to remove

sciorex_change_status

Change the status of a ticket. Validates that the transition is allowed.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID
statusenumbacklog, planned, in_progress, in_review, done, cancelled
commentstringOptional comment explaining the change

Valid Transitions

Status changes must follow the allowed transitions. See Status Transitions for details.

sciorex_list_tickets

List tickets with optional filters.

Parameters:

ParameterTypeRequiredDescription
statusstringFilter by status
typestringFilter by type
prioritystringFilter by priority
epicIdstringFilter by epic
limitnumberMax tickets to return (default: 50)

Epic Tools

sciorex_create_epic

Create a new epic.

Parameters:

ParameterTypeRequiredDescription
titlestringEpic title
descriptionstringEpic description in markdown

sciorex_get_epic

Get an epic by ID with its associated tickets.

Parameters:

ParameterTypeRequiredDescription
epicIdstringEpic ID (e.g., "E-001")

Returns: Epic details plus list of tickets assigned to it.

sciorex_list_epics

List all epics with progress statistics.

Parameters: None required.

Returns: All epics with ticket counts and completion percentages.

sciorex_update_epic

Update an epic's details.

Parameters:

ParameterTypeRequiredDescription
epicIdstringEpic ID to update
titlestringNew title
descriptionstringNew description
statusenumopen, in_progress, completed, cancelled

Subtask Tools

sciorex_add_subtask

Add a subtask to a ticket.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID (e.g., "T-001")
titlestringSubtask title

sciorex_complete_subtask

Mark a subtask as complete (by ID or title match).

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID
subtaskIdstringSubtask ID (takes precedence)
titlestringSubtask title (used for matching)
completedbooleanCompletion status (default: true)

Flexible Matching

You can complete subtasks by providing either the exact ID or a partial title match. Title matching is case-insensitive.

sciorex_list_subtasks

List all subtasks for a ticket with completion status.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID

Returns: Subtasks with summary statistics (total, completed, pending, percentage).


Query Tools

sciorex_search_tickets

Search tickets by text in title, description, and ID.

Parameters:

ParameterTypeRequiredDescription
querystringSearch text (case-insensitive)
limitnumberMax results (default: 20)

sciorex_get_ready_tickets

Get tickets that are ready to work on (status = "planned" and no blockers).

Parameters:

ParameterTypeRequiredDescription
limitnumberMax results (default: 10)
prioritystringFilter by priority
typestringFilter by type

sciorex_get_blocked_tickets

Get tickets that are currently blocked.

Parameters:

ParameterTypeRequiredDescription
limitnumberMax results (default: 10)

Progress Tools

sciorex_report_progress

Report progress on a ticket. Creates a history entry.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID
messagestringProgress update message
percentagenumberOptional progress percentage (0-100)

sciorex_add_comment

Add a comment to a ticket.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringTicket ID
commentstringComment text

sciorex_add_blocker

Add a blocker relationship between tickets.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringThe ticket being blocked
blockerTicketIdstringThe ticket causing the block
reasonstringReason for the block

sciorex_remove_blocker

Remove a blocker from a ticket.

Parameters:

ParameterTypeRequiredDescription
ticketIdstringThe ticket being blocked
blockerTicketIdstringThe blocker to remove

sciorex-interactions Server

The sciorex-interactions MCP server enables AI agents to communicate with users during execution.

sciorex_ask_user

Ask the user a question and wait for their response.

Parameters:

ParameterTypeRequiredDescription
questionstringThe question to ask
contextstringAdditional context
responseTypeenumsingle (radio), multiple (checkbox), text (textarea)
optionsstring[]Predefined options for selection
allowCustomTextbooleanShow textarea for custom input (default: true)
urgencyenumblocking, important, optional
placeholderstringPlaceholder text for textarea

Example:

json
{
  "question": "Which authentication provider should I implement first?",
  "responseType": "single",
  "options": ["Google OAuth", "GitHub OAuth", "Email/Password"],
  "allowCustomText": true,
  "urgency": "important"
}

Returns:

  • selectedOptions: Array of selected option strings
  • customText: User's custom text input
  • skipped: Whether user skipped the question

sciorex_notify_user

Send a notification to the user without waiting for response.

Parameters:

ParameterTypeRequiredDescription
messagestringNotification message
typeenuminfo, warning, error, success
detailsstringAdditional details

sciorex_request_approval

Request explicit approval before proceeding with an action.

Parameters:

ParameterTypeRequiredDescription
actionstringDescription of proposed action
reasonstringWhy this action is needed
alternativesstring[]Alternative actions if rejected
impactenumlow, medium, high

Example:

json
{
  "action": "Delete the legacy authentication module",
  "reason": "It's no longer used since the new OAuth implementation",
  "alternatives": ["Archive instead of delete", "Keep but mark as deprecated"],
  "impact": "high"
}

Returns:

  • approved: Whether user approved
  • selectedAlternative: Alternative chosen (if any)
  • userComment: User's additional comments

sciorex-resources Server

The sciorex-resources MCP server allows AI agents to create, modify, and manage agents and flows programmatically. This enables dynamic workflow creation and agent self-modification.

Agent Tools

sciorex_list_agents

List all available agents in the workspace.

Parameters: None required.

Returns: Array of agents with id, name, description, and path.

sciorex_get_agent

Get the full YAML definition of an agent.

Parameters:

ParameterTypeRequiredDescription
idstringAgent ID (kebab-case, e.g., "code-reviewer")

Returns: The complete YAML content of the agent definition.

sciorex_save_agent

Create or update an agent definition.

Parameters:

ParameterTypeRequiredDescription
idstringAgent ID (kebab-case)
contentstringFull YAML content of the agent definition

Example:

json
{
  "id": "code-reviewer",
  "content": "name: Code Reviewer\ndescription: Reviews code for quality and best practices\nsystemPrompt: |\n  You are a code review expert..."
}

Agent Schema

See Creating Agents for the full agent YAML schema and available options.

sciorex_delete_agent

Delete an agent from the workspace.

Parameters:

ParameterTypeRequiredDescription
idstringAgent ID to delete

Flow Tools

sciorex_list_flows

List all available flows in the workspace.

Parameters: None required.

Returns: Array of flows with id, name, description, and path.

sciorex_get_flow

Get the full JSON definition of a flow.

Parameters:

ParameterTypeRequiredDescription
idstringFlow ID

Returns: The complete JSON content of the flow definition.

sciorex_save_flow

Create or update a flow definition.

Parameters:

ParameterTypeRequiredDescription
idstringFlow ID (kebab-case)
contentstringFull JSON content of the flow definition

Flow Schema

See Flow Editor for the flow JSON schema and node types.

sciorex_delete_flow

Delete a flow from the workspace.

Parameters:

ParameterTypeRequiredDescription
idstringFlow ID to delete

Enabling MCP Tools

In Chat Sessions

When starting a chat, you can enable MCP tools using the tool selector:

  1. Click the 🔧 Tools button in the chat input area
  2. Toggle on the MCP servers you want to enable
  3. Optionally select specific tools from each server

In Agent Definitions

When creating agents, you can configure allowed tools:

yaml
# In agent definition
allowedTools:
  - mcp__sciorex-tickets__sciorex_create_ticket
  - mcp__sciorex-tickets__sciorex_change_status
  - mcp__sciorex-tickets__sciorex_complete_subtask
  - mcp__sciorex-interactions__sciorex_ask_user

Tool Name Format

MCP tool names follow this pattern:

mcp__{server-name}__{tool-name}

Examples:

  • mcp__sciorex-tickets__sciorex_create_ticket
  • mcp__sciorex-tickets__sciorex_get_epic
  • mcp__sciorex-interactions__sciorex_notify_user

Tool Discovery

Sciorex automatically discovers available tools from MCP servers at startup and caches them.

How It Works

  1. Startup: Sciorex spawns each configured MCP server
  2. Query: Sends tools/list request to discover available tools
  3. Cache: Stores tool definitions for quick access
  4. UI: Updates tool selector with available options

Refreshing Tools

If you add or modify MCP servers:

  1. Restart the application, or
  2. Open Settings and the tools will be re-discovered

Adding Custom MCP Servers

You can configure additional MCP servers in your Claude Code configuration:

json
{
  "mcpServers": {
    "my-custom-server": {
      "command": "node",
      "args": ["/path/to/server.js"],
      "env": {
        "API_KEY": "your-api-key"
      }
    }
  }
}

Custom servers will be discovered automatically and their tools will appear in the tool selector.

MCP Ecosystem

There's a growing ecosystem of MCP servers. Check out the MCP Registry for community-contributed servers.


Use Cases

Ticket Automation

AI agents can work on tickets autonomously:

markdown
Agent: "Starting work on ticket T-001"
- Uses sciorex_get_ticket to read requirements
- Uses sciorex_change_status to mark as in_progress
- Implements the feature using Bash, Read, Write, Edit
- Uses sciorex_complete_subtask as it finishes each item
- Uses sciorex_report_progress to log updates
- Uses sciorex_change_status to mark as done

Interactive Development

Agents can ask for clarification:

markdown
Agent: "I found multiple approaches to implement this..."
- Uses sciorex_ask_user with options for user to choose
- Waits for user response
- Proceeds with selected approach

Progress Tracking

Keep stakeholders informed:

markdown
Agent: "Task 3 of 5 complete"
- Uses sciorex_notify_user to send progress update
- Uses sciorex_report_progress to log in ticket history
- Continues with next task

Related Documentation

Released under the MIT License.