Documentation
¶
Index ¶
- Constants
- func CacheGetTools(mcpID string, updatedAt int64) ([]mcp.Tool, bool)
- func CacheSetTools(mcpID string, updatedAt int64, tools []mcp.Tool) error
- func CreateGroupMCP(c *gin.Context)
- func CreatePublicMCP(c *gin.Context)
- func DeleteGroupMCP(c *gin.Context)
- func DeletePublicMCP(c *gin.Context)
- func GetAllGroupMCPs(c *gin.Context)
- func GetAllPublicMCPs(c *gin.Context)
- func GetEmbedConfig(ct mcpservers.ConfigTemplates, initConfig map[string]string) (*model.MCPEmbeddingConfig, error)
- func GetEmbedMCPs(c *gin.Context)
- func GetGroupMCPByID(c *gin.Context)
- func GetGroupMCPs(c *gin.Context)
- func GetGroupPublicMCPByID(c *gin.Context)
- func GetGroupPublicMCPReusingParam(c *gin.Context)
- func GetGroupPublicMCPs(c *gin.Context)
- func GetProxyConfig(proxyConfigType mcpservers.ProxyConfigTemplates, initConfig map[string]string) (*model.PublicMCPProxyConfig, error)
- func GetPublicMCPByID(c *gin.Context)
- func GetPublicMCPs(c *gin.Context)
- func GroupMCPSSEServer(c *gin.Context)
- func GroupMCPStreamable(c *gin.Context)
- func HostMCPSSEServer(c *gin.Context)
- func HostMCPStreamable(c *gin.Context)
- func IsHostedMCP(t model.PublicMCPType) bool
- func MCPMessage(c *gin.Context)
- func PublicMCPSSEServer(c *gin.Context)
- func PublicMCPStreamable(c *gin.Context)
- func SaveEmbedMCP(c *gin.Context)
- func SaveGroupPublicMCPReusingParam(c *gin.Context)
- func SavePublicMCP(c *gin.Context)
- func SavePublicMCPs(c *gin.Context)
- func TestEmbedMCPSseServer(c *gin.Context)
- func TestEmbedMCPStreamable(c *gin.Context)
- func TestPublicMCPSSEServer(c *gin.Context)
- func ToPublicMCP(e mcpservers.McpServer, initConfig map[string]string, enabled bool) (*model.PublicMCP, error)
- func UpdateGroupMCP(c *gin.Context)
- func UpdateGroupMCPStatus(c *gin.Context)
- func UpdatePublicMCP(c *gin.Context)
- func UpdatePublicMCPStatus(c *gin.Context)
- type EmbedMCP
- type EmbedMCPConfigTemplate
- type EmbedMCPConfigTemplates
- type EndpointProvider
- type GroupMCPResponse
- type GroupPublicMCPDetailResponse
- type GroupPublicMCPResponse
- type MCPEndpoint
- type ParamsFunc
- type PublicMCPResponse
- type ReusingParamProcessor
- type SaveEmbedMCPRequest
- type SavePublicMCPRequest
- type UpdateGroupMCPStatusRequest
- type UpdatePublicMCPStatusRequest
Constants ¶
const (
ToolCacheKey = "tool:%s:%d" // mcp_id:updated_at
)
Variables ¶
This section is empty.
Functions ¶
func CreateGroupMCP ¶
CreateGroupMCP godoc
@Summary Create Group MCP @Description Create a new Group MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param group path string true "Group ID" @Param mcp body model.GroupMCP true "Group MCP object" @Success 200 {object} middleware.APIResponse{data=GroupMCPResponse} @Router /api/mcp/group/{group} [post]
func CreatePublicMCP ¶
CreatePublicMCP godoc
@Summary Create MCP @Description Create a new MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param mcp body model.PublicMCP true "MCP object" @Success 200 {object} middleware.APIResponse{data=PublicMCPResponse} @Router /api/mcp/public/ [post]
func DeleteGroupMCP ¶
DeleteGroupMCP godoc
@Summary Delete Group MCP @Description Delete a Group MCP by ID and Group ID @Tags mcp @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param group path string true "Group ID" @Success 200 {object} middleware.APIResponse @Router /api/mcp/group/{group}/{id} [delete]
func DeletePublicMCP ¶
DeletePublicMCP godoc
@Summary Delete MCP @Description Delete an MCP by ID @Tags mcp @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Success 200 {object} middleware.APIResponse @Router /api/mcp/public/{id} [delete]
func GetAllGroupMCPs ¶
GetAllGroupMCPs godoc
@Summary Get all Group MCPs @Description Get all Group MCPs with filtering @Tags mcp @Produce json @Security ApiKeyAuth @Param status query int false "MCP status" @Success 200 {object} middleware.APIResponse{data=[]GroupMCPResponse} @Router /api/mcp/group/all [get]
func GetAllPublicMCPs ¶
GetAllPublicMCPs godoc
@Summary Get all MCPs @Description Get all MCPs with filtering @Tags mcp @Produce json @Security ApiKeyAuth @Param status query int false "MCP status" @Success 200 {object} middleware.APIResponse{data=[]PublicMCPResponse} @Router /api/mcp/publics/all [get]
func GetEmbedConfig ¶
func GetEmbedConfig( ct mcpservers.ConfigTemplates, initConfig map[string]string, ) (*model.MCPEmbeddingConfig, error)
func GetEmbedMCPs ¶
GetEmbedMCPs godoc
@Summary Get embed mcp @Description Get embed mcp @Tags embedmcp @Accept json @Produce json @Security ApiKeyAuth @Success 200 {array} EmbedMCP @Router /api/embedmcp/ [get]
func GetGroupMCPByID ¶
GetGroupMCPByID godoc
@Summary Get Group MCP by ID @Description Get a specific Group MCP by its ID and Group ID @Tags mcp @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param group path string true "Group ID" @Success 200 {object} middleware.APIResponse{data=GroupMCPResponse} @Router /api/mcp/group/{group}/{id} [get]
func GetGroupMCPs ¶
GetGroupMCPs godoc
@Summary Get Group MCPs @Description Get a list of Group MCPs with pagination and filtering @Tags mcp @Produce json @Security ApiKeyAuth @Param group path string true "Group ID" @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param id query string false "MCP id" @Param type query string false "MCP type, mcp_proxy_sse, mcp_proxy_streamable, mcp_openapi" @Param keyword query string false "Search keyword" @Param status query int false "MCP status" @Success 200 {object} middleware.APIResponse{data=[]GroupMCPResponse} @Router /api/mcp/group/{group} [get]
func GetGroupPublicMCPByID ¶
GetGroupPublicMCPByID godoc
@Summary Get MCP by ID @Description Get a specific MCP by its ID @Tags mcp @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group ID" @Param id path string true "MCP ID" @Success 200 {object} middleware.APIResponse{data=GroupPublicMCPDetailResponse} @Router /api/group/{group}/mcp/{id} [get]
func GetGroupPublicMCPReusingParam ¶
GetGroupPublicMCPReusingParam godoc
@Summary Get group MCP reusing parameters @Description Get reusing parameters for a specific group and MCP @Tags mcp @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param group path string true "Group ID" @Success 200 {object} middleware.APIResponse{data=model.PublicMCPReusingParam} @Router /api/mcp/public/{id}/group/{group}/params [get]
func GetGroupPublicMCPs ¶
GetGroupPublicMCPs godoc
@Summary Get MCPs by group @Description Get MCPs by group @Tags mcp @Tags group @Produce json @Security ApiKeyAuth @Param group path string true "Group ID" @Param page query int false "Page" @Param per_page query int false "Per Page" @Param id query string false "MCP ID" @Param type query string false "hosted or local" @Param keyword query string false "Keyword" @Success 200 {object} middleware.APIResponse{data=[]GroupPublicMCPResponse} @Router /api/group/{group}/mcp [get]
func GetProxyConfig ¶
func GetProxyConfig( proxyConfigType mcpservers.ProxyConfigTemplates, initConfig map[string]string, ) (*model.PublicMCPProxyConfig, error)
func GetPublicMCPByID ¶
GetPublicMCPByID godoc
@Summary Get MCP by ID @Description Get a specific MCP by its ID @Tags mcp @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Success 200 {object} middleware.APIResponse{data=PublicMCPResponse} @Router /api/mcp/public/{id} [get]
func GetPublicMCPs ¶
GetPublicMCPs godoc
@Summary Get MCPs @Description Get a list of MCPs with pagination and filtering @Tags mcp @Produce json @Security ApiKeyAuth @Param page query int false "Page number" @Param per_page query int false "Items per page" @Param type query string false "hosted or local" @Param id query string false "MCP id" @Param keyword query string false "Search keyword" @Param status query int false "MCP status" @Success 200 {object} middleware.APIResponse{data=[]PublicMCPResponse} @Router /api/mcp/publics/ [get]
func GroupMCPSSEServer ¶
GroupMCPSSEServer godoc
@Summary Group MCP SSE Server @Security ApiKeyAuth @Router /mcp/group/{id}/sse [get]
func GroupMCPStreamable ¶
GroupMCPStreamable godoc
@Summary Group MCP Streamable Server @Security ApiKeyAuth @Router /mcp/group/{id} [get] @Router /mcp/group/{id} [post] @Router /mcp/group/{id} [delete]
func HostMCPSSEServer ¶
HostMCPSSEServer godoc
@Summary Public MCP SSE Server @Security ApiKeyAuth @Router /sse [get]
func HostMCPStreamable ¶
HostMCPStreamable godoc
@Summary Host MCP Streamable Server @Security ApiKeyAuth @Router /mcp [get] @Router /mcp [post] @Router /mcp [delete]
func IsHostedMCP ¶
func IsHostedMCP(t model.PublicMCPType) bool
func PublicMCPSSEServer ¶
PublicMCPSSEServer godoc
@Summary Public MCP SSE Server @Security ApiKeyAuth @Router /mcp/public/{id}/sse [get]
func PublicMCPStreamable ¶
PublicMCPStreamable godoc
@Summary Public MCP Streamable Server @Security ApiKeyAuth @Router /mcp/public/{id} [get] @Router /mcp/public/{id} [post] @Router /mcp/public/{id} [delete]
func SaveEmbedMCP ¶
SaveEmbedMCP godoc
@Summary Save embed mcp @Description Save embed mcp @Tags embedmcp @Accept json @Produce json @Security ApiKeyAuth @Param body body SaveEmbedMCPRequest true "Save embed mcp request" @Success 200 {object} nil @Router /api/embedmcp/ [post]
func SaveGroupPublicMCPReusingParam ¶
SaveGroupPublicMCPReusingParam godoc
@Summary Create or update group MCP reusing parameters @Description Create or update reusing parameters for a specific group and MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param group path string true "Group ID" @Param params body model.PublicMCPReusingParam true "Reusing parameters" @Success 200 {object} middleware.APIResponse @Router /api/mcp/public/{id}/group/{group}/params [post]
func SavePublicMCP ¶
SavePublicMCP godoc
@Summary Save MCP @Description Save a MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param mcp body model.PublicMCP true "MCP object" @Success 200 {object} middleware.APIResponse{data=PublicMCPResponse} @Router /api/mcp/public/{id} [put]
func SavePublicMCPs ¶
SavePublicMCPs godoc
@Summary Save MCPs @Description Save a list of MCPs @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param mcp body []model.PublicMCP true "MCP object" @Success 200 {object} middleware.APIResponse @Router /api/mcp/publics/ [post]
func TestEmbedMCPSseServer ¶
TestEmbedMCPSseServer godoc
@Summary Test Embed MCP SSE Server @Description Test Embed MCP SSE Server @Tags embedmcp @Security ApiKeyAuth @Param id path string true "MCP ID" @Param config[key] query string false "Initial configuration parameters (e.g. config[host]=http://localhost:3000)" @Param reusing[key] query string false "Reusing configuration parameters (e.g. reusing[authorization]=apikey)" @Success 200 {object} nil @Failure 400 {object} nil @Router /api/test-embedmcp/{id}/sse [get]
func TestEmbedMCPStreamable ¶
TestEmbedMCPStreamable godoc
@Summary Test Embed MCP Streamable Server @Description Test Embed MCP Streamable Server with various HTTP methods @Tags embedmcp @Security ApiKeyAuth @Param id path string true "MCP ID" @Param config[key] query string false "Initial configuration parameters (e.g. config[host]=http://localhost:3000)" @Param reusing[key] query string false "Reusing configuration parameters (e.g., reusing[authorization]=apikey)" @Accept json @Produce json @Success 200 {object} nil @Failure 400 {object} nil @Router /api/test-embedmcp/{id} [get] @Router /api/test-embedmcp/{id} [post] @Router /api/test-embedmcp/{id} [delete]
func TestPublicMCPSSEServer ¶
TestPublicMCPSSEServer godoc
@Summary Test Public MCP SSE Server @Security ApiKeyAuth @Param group path string true "Group ID" @Param id path string true "MCP ID" @Router /api/test-publicmcp/{group}/{id}/sse [get]
func ToPublicMCP ¶
func UpdateGroupMCP ¶
UpdateGroupMCP godoc
@Summary Update Group MCP @Description Update an existing Group MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param group path string true "Group ID" @Param mcp body model.GroupMCP true "Group MCP object" @Success 200 {object} middleware.APIResponse{data=GroupMCPResponse} @Router /api/mcp/group/{group}/{id} [put]
func UpdateGroupMCPStatus ¶
UpdateGroupMCPStatus godoc
@Summary Update Group MCP status @Description Update the status of a Group MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param group path string true "Group ID" @Param status body UpdateGroupMCPStatusRequest true "MCP status" @Success 200 {object} middleware.APIResponse @Router /api/mcp/group/{group}/{id}/status [post]
func UpdatePublicMCP ¶
UpdatePublicMCP godoc
@Summary Update MCP @Description Update an existing MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param mcp body model.PublicMCP true "MCP object" @Success 200 {object} middleware.APIResponse{data=PublicMCPResponse} @Router /api/mcp/public/{id} [post]
func UpdatePublicMCPStatus ¶
UpdatePublicMCPStatus godoc
@Summary Update MCP status @Description Update the status of an MCP @Tags mcp @Accept json @Produce json @Security ApiKeyAuth @Param id path string true "MCP ID" @Param status body UpdatePublicMCPStatusRequest true "MCP status" @Success 200 {object} middleware.APIResponse @Router /api/mcp/public/{id}/status [post]
Types ¶
type EmbedMCP ¶
type EmbedMCP struct { ID string `json:"id"` Enabled bool `json:"enabled"` Name string `json:"name"` NameCN string `json:"name_cn"` Readme string `json:"readme"` ReadmeURL string `json:"readme_url"` ReadmeCN string `json:"readme_cn"` ReadmeCNURL string `json:"readme_cn_url"` GitHubURL string `json:"github_url"` Tags []string `json:"tags"` ConfigTemplates EmbedMCPConfigTemplates `json:"config_templates"` EmbedConfig *model.MCPEmbeddingConfig `json:"embed_config"` }
type EmbedMCPConfigTemplate ¶
type EmbedMCPConfigTemplates ¶
type EmbedMCPConfigTemplates = map[string]EmbedMCPConfigTemplate
type EndpointProvider ¶
type GroupMCPResponse ¶
type GroupMCPResponse struct { model.GroupMCP Endpoints MCPEndpoint `json:"endpoints"` }
func NewGroupMCPResponse ¶
func NewGroupMCPResponse(host string, mcp model.GroupMCP) GroupMCPResponse
func NewGroupMCPResponses ¶
func NewGroupMCPResponses(host string, mcps []model.GroupMCP) []GroupMCPResponse
func (*GroupMCPResponse) MarshalJSON ¶
func (mcp *GroupMCPResponse) MarshalJSON() ([]byte, error)
type GroupPublicMCPDetailResponse ¶
type GroupPublicMCPDetailResponse struct { model.PublicMCP Hosted bool `json:"hosted"` Endpoints MCPEndpoint `json:"endpoints"` Reusing map[string]model.ReusingParam `json:"reusing"` Params map[string]string `json:"params"` Tools []mcp.Tool `json:"tools"` }
func (*GroupPublicMCPDetailResponse) MarshalJSON ¶
func (r *GroupPublicMCPDetailResponse) MarshalJSON() ([]byte, error)
type GroupPublicMCPResponse ¶
func NewGroupPublicMCPResponse ¶
func NewGroupPublicMCPResponse(mcp model.PublicMCP) GroupPublicMCPResponse
func NewGroupPublicMCPResponses ¶
func NewGroupPublicMCPResponses(mcps []model.PublicMCP) []GroupPublicMCPResponse
func (*GroupPublicMCPResponse) MarshalJSON ¶
func (r *GroupPublicMCPResponse) MarshalJSON() ([]byte, error)
type MCPEndpoint ¶
type MCPEndpoint struct { Host string `json:"host"` SSE string `json:"sse"` StreamableHTTP string `json:"streamable_http"` }
func NewPublicMCPEndpoint ¶
func NewPublicMCPEndpoint(host string, mcp model.PublicMCP) MCPEndpoint
type ParamsFunc ¶
type PublicMCPResponse ¶
type PublicMCPResponse struct { model.PublicMCP Endpoints MCPEndpoint `json:"endpoints"` }
func NewPublicMCPResponse ¶
func NewPublicMCPResponse(host string, mcp model.PublicMCP) PublicMCPResponse
func NewPublicMCPResponses ¶
func NewPublicMCPResponses(host string, mcps []model.PublicMCP) []PublicMCPResponse
func (*PublicMCPResponse) MarshalJSON ¶
func (mcp *PublicMCPResponse) MarshalJSON() ([]byte, error)
type ReusingParamProcessor ¶
type ReusingParamProcessor struct {
// contains filtered or unexported fields
}
ReusingParamProcessor 统一处理reusing参数
func NewReusingParamProcessor ¶
func NewReusingParamProcessor(mcpID string, paramsFunc ParamsFunc) *ReusingParamProcessor
func (*ReusingParamProcessor) ProcessEmbedReusingParams ¶
func (p *ReusingParamProcessor) ProcessEmbedReusingParams( reusingParams map[string]model.ReusingParam, ) (map[string]string, error)
ProcessEmbedReusingParams 处理嵌入类型的reusing参数
func (*ReusingParamProcessor) ProcessProxyReusingParams ¶
func (p *ReusingParamProcessor) ProcessProxyReusingParams( reusingParams map[string]model.PublicMCPProxyReusingParam, headers map[string]string, backendQuery *url.Values, ) error
ProcessProxyReusingParams 处理代理类型的reusing参数
type SaveEmbedMCPRequest ¶
type SavePublicMCPRequest ¶
type SavePublicMCPRequest struct { model.PublicMCP CreatedAt json.RawMessage `json:"created_at"` UpdateAt json.RawMessage `json:"update_at"` }
type UpdateGroupMCPStatusRequest ¶
type UpdateGroupMCPStatusRequest struct {
Status model.GroupMCPStatus `json:"status"`
}
type UpdatePublicMCPStatusRequest ¶
type UpdatePublicMCPStatusRequest struct {
Status model.PublicMCPStatus `json:"status"`
}