MCP Server

/views/vmcp/List.html (2.5 KB)

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{% import (
"{{{ .Package }}}/app"
"{{{ .Package }}}/app/controller/cutil"
"{{{ .Package }}}/app/lib/mcpserver"
"{{{ .Package }}}/app/util"
"{{{ .Package }}}/views/components"
"{{{ .Package }}}/views/layout"
) %}

{% code type MCPList struct {
layout.Basic
Server *mcpserver.Server
} %}

{% func (p *MCPList) Body(as *app.State, ps *cutil.PageState) %}
<div class="card">
<h3>{%= components.SVGIcon(`chart`, ps) %} Model Context Protocol</h3>
<div class="mt">You can register {%s util.AppName %} as a Model Context Protocol server using the command line or HTTP.</div>
<div class="mt">
<ul class="accordion">
<li>
<input id="accordion-cli" type="checkbox" hidden="hidden" />
<label for="accordion-cli">{%= components.ExpandCollapse(3, ps) %} Command Line</label>
<div class="bd"><div><div>
Register {%s util.AppName %} as a command line MCP server by calling this app using the command line as <code>{%s util.AppKey %} mcp</code>.
<div class="mt">{%s= cutil.FormatLangIgnoreErrors(mcpserver.UsageCLI(), "json") %}</div>
</div></div></div>
</li>
<li>
<input id="accordion-http" type="checkbox" hidden="hidden" />
<label for="accordion-http">{%= components.ExpandCollapse(3, ps) %} Streamable HTTP</label>
<div class="bd"><div><div>
Register {%s util.AppName %} as an HTTP MCP server by sending a POST to <code>/mcp</code>.
<div class="mt">{%s= cutil.FormatLangIgnoreErrors(mcpserver.UsageHTTP(), "json") %}</div>
</div>
</div></div></div>
</li>
</ul>
</div>
</div>

{%- if len(p.Server.Resources) > 0 -%}
<div class="card">
<h3>{%= components.SVGIcon(`file`, ps) %} Resources</h3>
{%= listResources(p.Server.Resources, ps) %}
</div>
{%- endif -%}

{%- if len(p.Server.ResourceTemplates) > 0 -%}
<div class="card">
<h3>{%= components.SVGIcon(`folder`, ps) %} Resource Templates</h3>
{%= listResourceTemplates(p.Server.ResourceTemplates, ps) %}
</div>
{%- endif -%}

{%- if len(p.Server.Tools) > 0 -%}
<div class="card">
<h3>{%= components.SVGIcon(`cog`, ps) %} Tools</h3>
{%= listTools(p.Server.Tools, ps) %}
</div>
{%- endif -%}

{%- if len(p.Server.Prompts) > 0 -%}
<div class="card">
<h3>{%= components.SVGIcon(`gift`, ps) %} Prompts</h3>
{%= listPrompts(p.Server.Prompts, ps) %}
</div>
{%- endif -%}
{% endfunc %}