mcp

package
v1.321.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateMemoryToolInput added in v1.248.0

type CreateMemoryToolInput struct {
	Title   string            `json:"title"`
	Content string            `json:"content,omitempty"`
	Scope   string            `json:"scope"`
	TeamID  string            `json:"team_id,omitempty"`
	Tags    map[string]string `json:"tags,omitempty"`
}

CreateMemoryToolInput represents input for create_memory tool

type CreateMemoryToolOutput added in v1.248.0

type CreateMemoryToolOutput struct {
	Memory MemoryOutput `json:"memory"`
}

CreateMemoryToolOutput represents output for create_memory tool

type CreateSessionInput

type CreateSessionInput struct {
	Environment map[string]string `json:"environment,omitempty" jsonschema:"Environment variables for the session"`
	Tags        map[string]string `json:"tags,omitempty" jsonschema:"Tags for the session"`
	Repository  string            `json:"repository,omitempty" jsonschema:"Repository to clone (e.g., 'owner/repo' or 'https://github.com/owner/repo')"`
}

CreateSessionInput represents input for create_session tool

type CreateSessionOutput

type CreateSessionOutput struct {
	SessionID string `json:"session_id" jsonschema:"Created session ID"`
}

CreateSessionOutput represents output for create_session tool

type CreateTaskGroupToolInput added in v1.247.0

type CreateTaskGroupToolInput struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Scope       string `json:"scope"`
	TeamID      string `json:"team_id,omitempty"`
}

CreateTaskGroupToolInput represents input for create_task_group tool

type CreateTaskGroupToolOutput added in v1.247.0

type CreateTaskGroupToolOutput struct {
	TaskGroup TaskGroupOutput `json:"task_group"`
}

CreateTaskGroupToolOutput represents output for create_task_group tool

type CreateTaskToolInput added in v1.247.0

type CreateTaskToolInput struct {
	Title       string          `json:"title"`
	Description string          `json:"description,omitempty"`
	TaskType    string          `json:"task_type"`
	Scope       string          `json:"scope"`
	TeamID      string          `json:"team_id,omitempty"`
	GroupID     string          `json:"group_id,omitempty"`
	Links       []TaskLinkInput `json:"links,omitempty"`
}

CreateTaskToolInput represents input for create_task tool

type CreateTaskToolOutput added in v1.247.0

type CreateTaskToolOutput struct {
	Task TaskOutput `json:"task"`
}

CreateTaskToolOutput represents output for create_task tool

type DeleteMemoryToolInput added in v1.248.0

type DeleteMemoryToolInput struct {
	MemoryID string `json:"memory_id"`
}

DeleteMemoryToolInput represents input for delete_memory tool

type DeleteMemoryToolOutput added in v1.248.0

type DeleteMemoryToolOutput struct {
	Message  string `json:"message"`
	MemoryID string `json:"memory_id"`
}

DeleteMemoryToolOutput represents output for delete_memory tool

type DeleteSessionInput

type DeleteSessionInput struct {
	SessionID string `json:"session_id" jsonschema:"Session ID to delete"`
}

DeleteSessionInput represents input for delete_session tool

type DeleteSessionOutput

type DeleteSessionOutput struct {
	Message   string `json:"message" jsonschema:"Success message"`
	SessionID string `json:"session_id" jsonschema:"Deleted session ID"`
}

DeleteSessionOutput represents output for delete_session tool

type DeleteTaskGroupToolInput added in v1.247.0

type DeleteTaskGroupToolInput struct {
	GroupID string `json:"group_id"`
}

DeleteTaskGroupToolInput represents input for delete_task_group tool

type DeleteTaskGroupToolOutput added in v1.247.0

type DeleteTaskGroupToolOutput struct {
	Message string `json:"message"`
	GroupID string `json:"group_id"`
}

DeleteTaskGroupToolOutput represents output for delete_task_group tool

type DeleteTaskToolInput added in v1.247.0

type DeleteTaskToolInput struct {
	TaskID string `json:"task_id"`
}

DeleteTaskToolInput represents input for delete_task tool

type DeleteTaskToolOutput added in v1.247.0

type DeleteTaskToolOutput struct {
	Message string `json:"message"`
	TaskID  string `json:"task_id"`
}

DeleteTaskToolOutput represents output for delete_task tool

type GetMemoryToolInput added in v1.248.0

type GetMemoryToolInput struct {
	MemoryID string `json:"memory_id"`
}

GetMemoryToolInput represents input for get_memory tool

type GetMemoryToolOutput added in v1.248.0

type GetMemoryToolOutput struct {
	Memory MemoryOutput `json:"memory"`
}

GetMemoryToolOutput represents output for get_memory tool

type GetMessagesInput

type GetMessagesInput struct {
	SessionID string `json:"session_id" jsonschema:"Session ID to get messages from"`
}

GetMessagesInput represents input for get_messages tool

type GetMessagesOutput

type GetMessagesOutput struct {
	Messages []MessageOutput `json:"messages" jsonschema:"List of messages"`
}

GetMessagesOutput represents output for get_messages tool

type GetStatusInput

type GetStatusInput struct {
	SessionID string `json:"session_id" jsonschema:"Session ID to get status for"`
}

GetStatusInput represents input for get_session_status tool

type GetStatusOutput

type GetStatusOutput struct {
	Status string `json:"status" jsonschema:"Session status"`
}

GetStatusOutput represents output for get_session_status tool

type GetTaskToolInput added in v1.247.0

type GetTaskToolInput struct {
	TaskID string `json:"task_id"`
}

GetTaskToolInput represents input for get_task tool

type GetTaskToolOutput added in v1.247.0

type GetTaskToolOutput struct {
	Task TaskOutput `json:"task"`
}

GetTaskToolOutput represents output for get_task tool

type ListMemoriesToolInput added in v1.248.0

type ListMemoriesToolInput struct {
	Scope  string            `json:"scope,omitempty"`
	TeamID string            `json:"team_id,omitempty"`
	Tags   map[string]string `json:"tags,omitempty"`
	Query  string            `json:"query,omitempty"`
}

ListMemoriesToolInput represents input for list_memories tool

type ListMemoriesToolOutput added in v1.248.0

type ListMemoriesToolOutput struct {
	Memories []MemoryOutput `json:"memories"`
	Total    int            `json:"total"`
}

ListMemoriesToolOutput represents output for list_memories tool

type ListSessionsInput

type ListSessionsInput struct {
	Status string            `json:"status,omitempty" jsonschema:"Filter by session status"`
	Tags   map[string]string `json:"tags,omitempty" jsonschema:"Filter by tags"`
}

ListSessionsInput represents input for list_sessions tool

type ListSessionsOutput

type ListSessionsOutput struct {
	Sessions []SessionOutput `json:"sessions" jsonschema:"List of sessions"`
}

ListSessionsOutput represents output for list_sessions tool

type ListTaskGroupsToolInput added in v1.247.0

type ListTaskGroupsToolInput struct {
	Scope  string `json:"scope,omitempty"`
	TeamID string `json:"team_id,omitempty"`
}

ListTaskGroupsToolInput represents input for list_task_groups tool

type ListTaskGroupsToolOutput added in v1.247.0

type ListTaskGroupsToolOutput struct {
	TaskGroups []TaskGroupOutput `json:"task_groups"`
	Total      int               `json:"total"`
}

ListTaskGroupsToolOutput represents output for list_task_groups tool

type ListTasksToolInput added in v1.247.0

type ListTasksToolInput struct {
	Scope    string `json:"scope,omitempty"`
	TeamID   string `json:"team_id,omitempty"`
	GroupID  string `json:"group_id,omitempty"`
	Status   string `json:"status,omitempty"`
	TaskType string `json:"task_type,omitempty"`
}

ListTasksToolInput represents input for list_tasks tool

type ListTasksToolOutput added in v1.247.0

type ListTasksToolOutput struct {
	Tasks []TaskOutput `json:"tasks"`
	Total int          `json:"total"`
}

ListTasksToolOutput represents output for list_tasks tool

type MCPHandler

type MCPHandler struct {
	// contains filtered or unexported fields
}

MCPHandler implements the CustomHandler interface for MCP endpoints

func NewMCPHandler

func NewMCPHandler(server *app.Server) *MCPHandler

NewMCPHandler creates a new MCP handler for the /mcp endpoint

func (*MCPHandler) GetName

func (h *MCPHandler) GetName() string

GetName returns the name of this handler for logging

func (*MCPHandler) RegisterRoutes

func (h *MCPHandler) RegisterRoutes(e *echo.Echo, server *app.Server) error

RegisterRoutes registers the /mcp endpoint with Echo

type MCPServer

type MCPServer struct {
	// contains filtered or unexported fields
}

MCPServer wraps the MCP server and use cases

func NewMCPServer

func NewMCPServer(sessionManager repositories.SessionManager, shareRepo repositories.ShareRepository, taskRepo repositories.TaskRepository, taskGroupRepo repositories.TaskGroupRepository, memoryRepo repositories.MemoryRepository, authenticatedUserID string, authenticatedTeams []string, authenticatedGithubToken string, sessionID string, opts *mcp.ServerOptions) *MCPServer

NewMCPServer creates a new MCP server instance

func (*MCPServer) GetServer

func (s *MCPServer) GetServer() *mcp.Server

GetServer returns the underlying MCP server

func (*MCPServer) RegisterTools

func (s *MCPServer) RegisterTools()

RegisterTools registers all MCP tools

type MemoryOutput added in v1.248.0

type MemoryOutput struct {
	ID        string            `json:"id"`
	Title     string            `json:"title"`
	Content   string            `json:"content"`
	Tags      map[string]string `json:"tags,omitempty"`
	Scope     string            `json:"scope"`
	OwnerID   string            `json:"owner_id"`
	TeamID    string            `json:"team_id,omitempty"`
	CreatedAt time.Time         `json:"created_at"`
	UpdatedAt time.Time         `json:"updated_at"`
}

MemoryOutput represents a memory entry in the response

type MessageOutput

type MessageOutput struct {
	Role      string    `json:"role" jsonschema:"Message role"`
	Content   string    `json:"content" jsonschema:"Message content"`
	Timestamp time.Time `json:"timestamp" jsonschema:"Message timestamp"`
}

MessageOutput represents a message in the output

type SendMessageInput

type SendMessageInput struct {
	SessionID string `json:"session_id" jsonschema:"Session ID to send message to"`
	Message   string `json:"message" jsonschema:"Message content to send"`
	Type      string `json:"type,omitempty" jsonschema:"Message type (user or raw)"`
}

SendMessageInput represents input for send_message tool

type SendMessageOutput

type SendMessageOutput struct {
	MessageID string `json:"message_id" jsonschema:"Sent message ID"`
}

SendMessageOutput represents output for send_message tool

type SessionOutput

type SessionOutput struct {
	SessionID string            `json:"session_id" jsonschema:"Session ID"`
	UserID    string            `json:"user_id" jsonschema:"User ID"`
	Status    string            `json:"status" jsonschema:"Session status"`
	StartedAt time.Time         `json:"started_at" jsonschema:"When the session was started"`
	Port      int               `json:"port" jsonschema:"Port number"`
	Tags      map[string]string `json:"tags,omitempty" jsonschema:"Session tags"`
}

SessionOutput represents a session in the output

type TaskGroupOutput added in v1.247.0

type TaskGroupOutput struct {
	ID          string    `json:"id"`
	Name        string    `json:"name"`
	Description string    `json:"description,omitempty"`
	Scope       string    `json:"scope"`
	OwnerID     string    `json:"owner_id"`
	TeamID      string    `json:"team_id,omitempty"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}

TaskGroupOutput represents a task group in the response

type TaskLinkInput added in v1.247.0

type TaskLinkInput struct {
	URL   string `json:"url"`
	Title string `json:"title,omitempty"`
}

TaskLinkInput represents a link in a task creation/update request

type TaskLinkOutput added in v1.247.0

type TaskLinkOutput struct {
	ID    string `json:"id"`
	URL   string `json:"url"`
	Title string `json:"title,omitempty"`
}

TaskLinkOutput represents a link in a task response

type TaskOutput added in v1.247.0

type TaskOutput struct {
	ID          string           `json:"id"`
	Title       string           `json:"title"`
	Description string           `json:"description,omitempty"`
	Status      string           `json:"status"`
	TaskType    string           `json:"task_type"`
	Scope       string           `json:"scope"`
	OwnerID     string           `json:"owner_id"`
	TeamID      string           `json:"team_id,omitempty"`
	GroupID     string           `json:"group_id,omitempty"`
	SessionID   string           `json:"session_id,omitempty"`
	Links       []TaskLinkOutput `json:"links"`
	CreatedAt   time.Time        `json:"created_at"`
	UpdatedAt   time.Time        `json:"updated_at"`
}

TaskOutput represents a task in the response

type UpdateMemoryToolInput added in v1.248.0

type UpdateMemoryToolInput struct {
	MemoryID string             `json:"memory_id"`
	Title    *string            `json:"title,omitempty"`
	Content  *string            `json:"content,omitempty"`
	Tags     *map[string]string `json:"tags,omitempty"`
}

UpdateMemoryToolInput represents input for update_memory tool

type UpdateMemoryToolOutput added in v1.248.0

type UpdateMemoryToolOutput struct {
	Memory MemoryOutput `json:"memory"`
}

UpdateMemoryToolOutput represents output for update_memory tool

type UpdateTaskToolInput added in v1.247.0

type UpdateTaskToolInput struct {
	TaskID      string           `json:"task_id"`
	Title       *string          `json:"title,omitempty"`
	Description *string          `json:"description,omitempty"`
	Status      *string          `json:"status,omitempty"`
	GroupID     *string          `json:"group_id,omitempty"`
	SessionID   *string          `json:"session_id,omitempty"`
	Links       *[]TaskLinkInput `json:"links,omitempty"`
}

UpdateTaskToolInput represents input for update_task tool

type UpdateTaskToolOutput added in v1.247.0

type UpdateTaskToolOutput struct {
	Task TaskOutput `json:"task"`
}

UpdateTaskToolOutput represents output for update_task tool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL