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"`
}