fa-mcp-sdk 0.4.74 → 0.4.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +319 -314
  2. package/bin/fa-mcp.js +85 -68
  3. package/cli-template/.claude/agents/javascript-pro.md +276 -276
  4. package/cli-template/.claude/settings.json +50 -50
  5. package/cli-template/.claude/skills/mcp-app-add-to-server/SKILL.md +427 -0
  6. package/cli-template/.claude/skills/mcp-app-create/SKILL.md +222 -0
  7. package/cli-template/.claude/skills/upgrade-guide/SKILL.md +2 -1
  8. package/cli-template/.oxfmtrc.json +41 -0
  9. package/cli-template/.oxlintrc.json +120 -0
  10. package/cli-template/CLAUDE.md +358 -355
  11. package/cli-template/FA-MCP-SDK-DOC/00-FA-MCP-SDK-index.md +132 -132
  12. package/cli-template/FA-MCP-SDK-DOC/01-getting-started.md +146 -146
  13. package/cli-template/FA-MCP-SDK-DOC/02-1-tools-and-api.md +431 -431
  14. package/cli-template/FA-MCP-SDK-DOC/02-2-prompts-and-resources.md +201 -201
  15. package/cli-template/FA-MCP-SDK-DOC/03-configuration.md +384 -384
  16. package/cli-template/FA-MCP-SDK-DOC/04-authentication.md +412 -412
  17. package/cli-template/FA-MCP-SDK-DOC/05-ad-authorization.md +196 -196
  18. package/cli-template/FA-MCP-SDK-DOC/06-utilities.md +163 -163
  19. package/cli-template/FA-MCP-SDK-DOC/07-testing-and-operations.md +127 -127
  20. package/cli-template/FA-MCP-SDK-DOC/08-agent-tester-and-headless-api.md +681 -659
  21. package/cli-template/README.md +193 -191
  22. package/cli-template/jest.config.js +27 -30
  23. package/cli-template/package.json +10 -5
  24. package/cli-template/prompt-example-new-MCP.md +101 -101
  25. package/cli-template/readme-docs/SKILLS.md +86 -1
  26. package/cli-template/tsconfig.json +58 -58
  27. package/cli-template/update.cjs +41 -38
  28. package/config/custom-environment-variables.yaml +63 -63
  29. package/config/development.yaml +4 -4
  30. package/config/production.yaml +4 -4
  31. package/config/test.yaml +26 -26
  32. package/dist/core/_types_/TNtlm.d.ts.map +1 -1
  33. package/dist/core/_types_/active-directory-config.d.ts.map +1 -1
  34. package/dist/core/_types_/config.d.ts.map +1 -1
  35. package/dist/core/_types_/types.d.ts.map +1 -1
  36. package/dist/core/ad/group-checker.d.ts.map +1 -1
  37. package/dist/core/ad/group-checker.js.map +1 -1
  38. package/dist/core/agent-tester/agent-tester-router.d.ts.map +1 -1
  39. package/dist/core/agent-tester/agent-tester-router.js +6 -6
  40. package/dist/core/agent-tester/agent-tester-router.js.map +1 -1
  41. package/dist/core/agent-tester/check-llm.d.ts.map +1 -1
  42. package/dist/core/agent-tester/check-llm.js.map +1 -1
  43. package/dist/core/agent-tester/services/SummaryMemory.d.ts.map +1 -1
  44. package/dist/core/agent-tester/services/SummaryMemory.js +3 -9
  45. package/dist/core/agent-tester/services/SummaryMemory.js.map +1 -1
  46. package/dist/core/agent-tester/services/TesterAgentService.d.ts.map +1 -1
  47. package/dist/core/agent-tester/services/TesterAgentService.js +25 -27
  48. package/dist/core/agent-tester/services/TesterAgentService.js.map +1 -1
  49. package/dist/core/agent-tester/services/TesterMcpClientService.d.ts.map +1 -1
  50. package/dist/core/agent-tester/services/TesterMcpClientService.js +26 -25
  51. package/dist/core/agent-tester/services/TesterMcpClientService.js.map +1 -1
  52. package/dist/core/auth/admin-auth.d.ts.map +1 -1
  53. package/dist/core/auth/admin-auth.js +5 -5
  54. package/dist/core/auth/admin-auth.js.map +1 -1
  55. package/dist/core/auth/agent-tester-auth.d.ts.map +1 -1
  56. package/dist/core/auth/agent-tester-auth.js +1 -6
  57. package/dist/core/auth/agent-tester-auth.js.map +1 -1
  58. package/dist/core/auth/basic.d.ts.map +1 -1
  59. package/dist/core/auth/basic.js.map +1 -1
  60. package/dist/core/auth/ip-check.d.ts.map +1 -1
  61. package/dist/core/auth/ip-check.js +1 -1
  62. package/dist/core/auth/ip-check.js.map +1 -1
  63. package/dist/core/auth/jwt.d.ts.map +1 -1
  64. package/dist/core/auth/jwt.js +1 -1
  65. package/dist/core/auth/jwt.js.map +1 -1
  66. package/dist/core/auth/middleware.d.ts.map +1 -1
  67. package/dist/core/auth/middleware.js +9 -6
  68. package/dist/core/auth/middleware.js.map +1 -1
  69. package/dist/core/auth/multi-auth.d.ts.map +1 -1
  70. package/dist/core/auth/multi-auth.js +6 -6
  71. package/dist/core/auth/multi-auth.js.map +1 -1
  72. package/dist/core/auth/revocation.d.ts.map +1 -1
  73. package/dist/core/auth/revocation.js +2 -6
  74. package/dist/core/auth/revocation.js.map +1 -1
  75. package/dist/core/auth/token-generator/ntlm/ntlm-auth-options.d.ts.map +1 -1
  76. package/dist/core/auth/token-generator/ntlm/ntlm-auth-options.js +2 -2
  77. package/dist/core/auth/token-generator/ntlm/ntlm-auth-options.js.map +1 -1
  78. package/dist/core/auth/token-generator/ntlm/ntlm-domain-config.js +1 -1
  79. package/dist/core/auth/token-generator/ntlm/ntlm-domain-config.js.map +1 -1
  80. package/dist/core/auth/token-generator/ntlm/ntlm-integration.d.ts.map +1 -1
  81. package/dist/core/auth/token-generator/ntlm/ntlm-integration.js +4 -2
  82. package/dist/core/auth/token-generator/ntlm/ntlm-integration.js.map +1 -1
  83. package/dist/core/auth/token-generator/server.d.ts.map +1 -1
  84. package/dist/core/auth/token-generator/server.js.map +1 -1
  85. package/dist/core/bootstrap/init-config.d.ts.map +1 -1
  86. package/dist/core/bootstrap/init-config.js +2 -2
  87. package/dist/core/bootstrap/init-config.js.map +1 -1
  88. package/dist/core/bootstrap/startup-info.d.ts.map +1 -1
  89. package/dist/core/bootstrap/startup-info.js +3 -7
  90. package/dist/core/bootstrap/startup-info.js.map +1 -1
  91. package/dist/core/cache/cache.d.ts.map +1 -1
  92. package/dist/core/cache/cache.js +2 -2
  93. package/dist/core/cache/cache.js.map +1 -1
  94. package/dist/core/consul/deregister.d.ts.map +1 -1
  95. package/dist/core/consul/deregister.js.map +1 -1
  96. package/dist/core/consul/get-consul-api.d.ts.map +1 -1
  97. package/dist/core/consul/get-consul-api.js +1 -2
  98. package/dist/core/consul/get-consul-api.js.map +1 -1
  99. package/dist/core/db/pg-db.d.ts.map +1 -1
  100. package/dist/core/db/pg-db.js +3 -3
  101. package/dist/core/db/pg-db.js.map +1 -1
  102. package/dist/core/debug.d.ts.map +1 -1
  103. package/dist/core/debug.js.map +1 -1
  104. package/dist/core/errors/BaseMcpError.d.ts.map +1 -1
  105. package/dist/core/errors/BaseMcpError.js.map +1 -1
  106. package/dist/core/errors/ValidationError.d.ts.map +1 -1
  107. package/dist/core/errors/ValidationError.js.map +1 -1
  108. package/dist/core/errors/errors.d.ts.map +1 -1
  109. package/dist/core/errors/errors.js +1 -1
  110. package/dist/core/errors/errors.js.map +1 -1
  111. package/dist/core/index.d.ts +6 -6
  112. package/dist/core/index.d.ts.map +1 -1
  113. package/dist/core/index.js +5 -5
  114. package/dist/core/index.js.map +1 -1
  115. package/dist/core/init-mcp-server.d.ts.map +1 -1
  116. package/dist/core/init-mcp-server.js.map +1 -1
  117. package/dist/core/logger.d.ts.map +1 -1
  118. package/dist/core/logger.js +1 -1
  119. package/dist/core/logger.js.map +1 -1
  120. package/dist/core/mcp/create-mcp-server.d.ts.map +1 -1
  121. package/dist/core/mcp/create-mcp-server.js +1 -1
  122. package/dist/core/mcp/create-mcp-server.js.map +1 -1
  123. package/dist/core/mcp/prompts.d.ts.map +1 -1
  124. package/dist/core/mcp/prompts.js.map +1 -1
  125. package/dist/core/mcp/readme-assembler.d.ts.map +1 -1
  126. package/dist/core/mcp/readme-assembler.js +3 -1
  127. package/dist/core/mcp/readme-assembler.js.map +1 -1
  128. package/dist/core/mcp/resources.d.ts.map +1 -1
  129. package/dist/core/mcp/resources.js.map +1 -1
  130. package/dist/core/mcp/server-stdio.d.ts.map +1 -1
  131. package/dist/core/utils/formatToolResult.d.ts.map +1 -1
  132. package/dist/core/utils/formatToolResult.js.map +1 -1
  133. package/dist/core/utils/port-checker.d.ts.map +1 -1
  134. package/dist/core/utils/port-checker.js.map +1 -1
  135. package/dist/core/utils/rate-limit.d.ts.map +1 -1
  136. package/dist/core/utils/rate-limit.js +2 -8
  137. package/dist/core/utils/rate-limit.js.map +1 -1
  138. package/dist/core/utils/testing/BaseMcpClient.d.ts.map +1 -1
  139. package/dist/core/utils/testing/BaseMcpClient.js.map +1 -1
  140. package/dist/core/utils/testing/McpHttpClient.d.ts.map +1 -1
  141. package/dist/core/utils/testing/McpHttpClient.js +2 -2
  142. package/dist/core/utils/testing/McpHttpClient.js.map +1 -1
  143. package/dist/core/utils/testing/McpSseClient.d.ts.map +1 -1
  144. package/dist/core/utils/testing/McpSseClient.js +3 -8
  145. package/dist/core/utils/testing/McpSseClient.js.map +1 -1
  146. package/dist/core/utils/testing/McpStdioClient.d.ts.map +1 -1
  147. package/dist/core/utils/testing/McpStdioClient.js.map +1 -1
  148. package/dist/core/utils/testing/McpStreamableHttpClient.d.ts.map +1 -1
  149. package/dist/core/utils/testing/McpStreamableHttpClient.js +7 -8
  150. package/dist/core/utils/testing/McpStreamableHttpClient.js.map +1 -1
  151. package/dist/core/utils/utils.d.ts.map +1 -1
  152. package/dist/core/utils/utils.js +3 -5
  153. package/dist/core/utils/utils.js.map +1 -1
  154. package/dist/core/web/admin-router.d.ts.map +1 -1
  155. package/dist/core/web/admin-router.js +3 -3
  156. package/dist/core/web/admin-router.js.map +1 -1
  157. package/dist/core/web/cors.d.ts.map +1 -1
  158. package/dist/core/web/cors.js.map +1 -1
  159. package/dist/core/web/favicon-svg.d.ts.map +1 -1
  160. package/dist/core/web/favicon-svg.js +1 -5
  161. package/dist/core/web/favicon-svg.js.map +1 -1
  162. package/dist/core/web/home-api.d.ts.map +1 -1
  163. package/dist/core/web/home-api.js +7 -8
  164. package/dist/core/web/home-api.js.map +1 -1
  165. package/dist/core/web/openapi.d.ts.map +1 -1
  166. package/dist/core/web/openapi.js +1 -3
  167. package/dist/core/web/openapi.js.map +1 -1
  168. package/dist/core/web/server-http.d.ts.map +1 -1
  169. package/dist/core/web/server-http.js +4 -4
  170. package/dist/core/web/server-http.js.map +1 -1
  171. package/dist/core/web/static/agent-tester/index.html +323 -323
  172. package/dist/core/web/static/agent-tester/script.js +311 -200
  173. package/dist/core/web/static/agent-tester/styles.css +1840 -1840
  174. package/dist/core/web/static/home/index.html +220 -220
  175. package/dist/core/web/static/home/script.js +72 -43
  176. package/dist/core/web/static/styles.css +927 -927
  177. package/dist/core/web/static/token-gen/index.html +136 -136
  178. package/dist/core/web/static/token-gen/script.js +58 -56
  179. package/dist/core/web/svg-icons.d.ts.map +1 -1
  180. package/dist/core/web/svg-icons.js +1 -5
  181. package/dist/core/web/svg-icons.js.map +1 -1
  182. package/package.json +10 -5
  183. package/{cli-template/.claude/hooks/eslint-fix.cjs → scripts/cc-hook-oxlint-oxfmt-fix.cjs} +109 -100
  184. package/scripts/generate-jwt.js +5 -9
  185. package/scripts/kill-port.js +5 -2
  186. package/scripts/npm/run.js +1 -2
  187. package/scripts/remove-nul.js +1 -1
  188. package/scripts/update-sdk.js +36 -14
  189. package/src/template/api/router.ts +3 -3
  190. package/src/template/prompts/agent-brief.ts +0 -1
  191. package/src/template/start.ts +3 -8
  192. package/src/template/tools/handle-tool-call.ts +3 -3
  193. package/src/template/tools/tools.ts +3 -7
  194. package/src/tests/jest-simple-reporter.js +1 -1
  195. package/src/tests/mcp/sse/mcp-sse-client-handling.md +111 -111
  196. package/src/tests/mcp/sse/test-sse-npm-package.js +2 -3
  197. package/src/tests/mcp/test-cases.js +6 -7
  198. package/src/tests/mcp/test-http.js +2 -2
  199. package/src/tests/mcp/test-sse.js +9 -7
  200. package/src/tests/mcp/test-stdio.js +12 -8
  201. package/src/tests/utils.ts +4 -3
  202. package/cli-template/eslint.config.js +0 -27
@@ -1,220 +1,220 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>MCP Server</title>
7
- <link rel="icon" type="image/svg+xml" href="">
8
- <link rel="stylesheet" href="/static/styles.css">
9
- </head>
10
- <body>
11
- <div class="simple-container">
12
- <!-- Header -->
13
- <header class="simple-header">
14
- <div class="header-row">
15
- <div class="header-title">
16
- <div class="service-icon" id="serviceIcon"></div>
17
- <h1 id="serviceTitle"><span class="MCPServer">MCP Server</span></h1>
18
- </div>
19
- </div>
20
- </header>
21
-
22
- <!-- Main Content -->
23
- <main class="simple-main">
24
- <!-- Basic Info -->
25
- <section class="info-section">
26
- <div class="info-row">
27
- <span class="label">Service:</span>
28
- <span class="value" id="serviceDescription">Loading...</span>
29
- </div>
30
- <div class="info-row">
31
- <span class="label">Version:</span>
32
- <span class="value" id="serviceVersion">-</span>
33
- </div>
34
- <div class="info-row">
35
- <span class="label">Tools:</span>
36
- <span class="value clickable" id="toolsCount" onclick="openModal('tools')">-</span>
37
- </div>
38
- <div class="info-row">
39
- <span class="label">Resources:</span>
40
- <span class="value clickable" id="resourcesCount" onclick="openModal('resources')">-</span>
41
- </div>
42
- <div class="info-row">
43
- <span class="label">Prompts:</span>
44
- <span class="value clickable" id="promptsCount" onclick="openModal('prompts')">-</span>
45
- </div>
46
- <div class="info-row">
47
- <span class="label">Uptime:</span>
48
- <span class="value" id="serviceUptime">-</span>
49
- </div>
50
- </section>
51
-
52
- <!-- Database Info -->
53
- <section class="info-section" id="dbSection" style="display: none;">
54
- <div class="info-row">
55
- <span class="label">Database:</span>
56
- <div>
57
- <span class="value" id="dbValue"></span>
58
- <span class="value" id="dbStatus"></span>
59
- </div>
60
- </div>
61
- </section>
62
-
63
- <!-- Transport Info -->
64
- <section class="info-section">
65
- <div class="info-row">
66
- <span class="label">HTTP Transport:</span>
67
- <span class="value"><code>GET /sse</code> • <code>POST /mcp</code></span>
68
- </div>
69
- </section>
70
-
71
- <!-- Auth Info -->
72
- <section class="info-section" id="authSection">
73
- <div class="info-row">
74
- <span class="label">MCP Auth:</span>
75
- <span class="value" id="mcpAuthValue">-</span>
76
- </div>
77
- <div class="info-row">
78
- <span class="label">Admin Panel:</span>
79
- <span class="value" id="adminPanelValue">-</span>
80
- </div>
81
- </section>
82
-
83
- <!-- OpenAPI Documentation -->
84
- <section class="info-section" id="swaggerSection" style="display: none;">
85
- <div class="info-row">
86
- <span class="label">API Reference:</span>
87
- <span class="value">
88
- <a href="/docs" target="_blank" rel="noopener" class="clickable">OpenAPI Documentation</a>
89
- <a href="/api/openapi.json" target="_blank" rel="noopener" class="clickable">JSON</a> |
90
- <a href="/api/openapi.yaml" target="_blank" rel="noopener" class="clickable">YAML</a>
91
- </span>
92
- </div>
93
- </section>
94
-
95
- <!-- Consul -->
96
- <section class="info-section" id="consulSection" style="display: none;">
97
- <div class="info-row">
98
- <span class="label">Consul id:</span>
99
- <span class="value">
100
- <a href="#" id="consulLink" target="_blank" rel="noopener" class="clickable"></a>
101
- </span>
102
- </div>
103
- </section>
104
-
105
- <!-- Health Check -->
106
- <section class="info-section">
107
- <div class="info-row">
108
- <span class="label">Health Check:</span>
109
- <span class="value clickable" onclick="openHealthCheckModal()">Check Server Health</span>
110
- </div>
111
- </section>
112
- </main>
113
-
114
- <!-- Modal Overlays -->
115
- <!-- Tools Modal -->
116
- <div id="tools-modal" class="modal-overlay" style="display: none;">
117
- <div class="modal-content">
118
- <div class="modal-header">
119
- <h3>Available Tools</h3>
120
- <button class="modal-close" onclick="closeModal('tools')">&times;</button>
121
- </div>
122
- <div class="modal-body">
123
- <div class="table-container">
124
- <table class="details-table" id="tools-table">
125
- <thead>
126
- <tr>
127
- <th>Name</th>
128
- <th>Description</th>
129
- <th>Actions</th>
130
- </tr>
131
- </thead>
132
- <tbody>
133
- <!-- Content will be dynamically loaded -->
134
- </tbody>
135
- </table>
136
- </div>
137
- </div>
138
- </div>
139
- </div>
140
-
141
- <!-- Resources Modal -->
142
- <div id="resources-modal" class="modal-overlay" style="display: none;">
143
- <div class="modal-content">
144
- <div class="modal-header">
145
- <h3>Available Resources</h3>
146
- <button class="modal-close" onclick="closeModal('resources')">&times;</button>
147
- </div>
148
- <div class="modal-body">
149
- <div class="table-container">
150
- <table class="details-table" id="resources-table">
151
- <thead>
152
- <tr>
153
- <th>URI</th>
154
- <th>Name</th>
155
- <th>Description</th>
156
- <th>MIME Type</th>
157
- <th>Actions</th>
158
- </tr>
159
- </thead>
160
- <tbody>
161
- <!-- Content will be dynamically loaded -->
162
- </tbody>
163
- </table>
164
- </div>
165
- </div>
166
- </div>
167
- </div>
168
-
169
- <!-- Prompts Modal -->
170
- <div id="prompts-modal" class="modal-overlay" style="display: none;">
171
- <div class="modal-content">
172
- <div class="modal-header">
173
- <h3>Available Prompts</h3>
174
- <button class="modal-close" onclick="closeModal('prompts')">&times;</button>
175
- </div>
176
- <div class="modal-body">
177
- <div class="table-container">
178
- <table class="details-table" id="prompts-table">
179
- <thead>
180
- <tr>
181
- <th>Name</th>
182
- <th>Actions</th>
183
- </tr>
184
- </thead>
185
- <tbody>
186
- <!-- Content will be dynamically loaded -->
187
- </tbody>
188
- </table>
189
- </div>
190
- </div>
191
- </div>
192
- </div>
193
-
194
- <!-- Health Check Modal -->
195
- <div id="health-modal" class="modal-overlay" style="display: none;">
196
- <div class="modal-content">
197
- <div class="modal-header">
198
- <h3>Server Health Check</h3>
199
- <button class="modal-close" onclick="closeModal('health')">&times;</button>
200
- </div>
201
- <div class="modal-body">
202
- <div class="loading-cell" id="health-loading">
203
- <div class="loading-spinner"></div>
204
- Checking server health...
205
- </div>
206
- <pre class="json-content" id="health-result" style="display: none;"></pre>
207
- <div class="error-message" id="health-error" style="display: none;"></div>
208
- </div>
209
- </div>
210
- </div>
211
-
212
- <!-- Footer -->
213
- <footer class="simple-footer">
214
- <p id="footerContent"></p>
215
- </footer>
216
- </div>
217
-
218
- <script src="/static/home/script.js"></script>
219
- </body>
220
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>MCP Server</title>
7
+ <link rel="icon" type="image/svg+xml" href="">
8
+ <link rel="stylesheet" href="/static/styles.css">
9
+ </head>
10
+ <body>
11
+ <div class="simple-container">
12
+ <!-- Header -->
13
+ <header class="simple-header">
14
+ <div class="header-row">
15
+ <div class="header-title">
16
+ <div class="service-icon" id="serviceIcon"></div>
17
+ <h1 id="serviceTitle"><span class="MCPServer">MCP Server</span></h1>
18
+ </div>
19
+ </div>
20
+ </header>
21
+
22
+ <!-- Main Content -->
23
+ <main class="simple-main">
24
+ <!-- Basic Info -->
25
+ <section class="info-section">
26
+ <div class="info-row">
27
+ <span class="label">Service:</span>
28
+ <span class="value" id="serviceDescription">Loading...</span>
29
+ </div>
30
+ <div class="info-row">
31
+ <span class="label">Version:</span>
32
+ <span class="value" id="serviceVersion">-</span>
33
+ </div>
34
+ <div class="info-row">
35
+ <span class="label">Tools:</span>
36
+ <span class="value clickable" id="toolsCount" onclick="openModal('tools')">-</span>
37
+ </div>
38
+ <div class="info-row">
39
+ <span class="label">Resources:</span>
40
+ <span class="value clickable" id="resourcesCount" onclick="openModal('resources')">-</span>
41
+ </div>
42
+ <div class="info-row">
43
+ <span class="label">Prompts:</span>
44
+ <span class="value clickable" id="promptsCount" onclick="openModal('prompts')">-</span>
45
+ </div>
46
+ <div class="info-row">
47
+ <span class="label">Uptime:</span>
48
+ <span class="value" id="serviceUptime">-</span>
49
+ </div>
50
+ </section>
51
+
52
+ <!-- Database Info -->
53
+ <section class="info-section" id="dbSection" style="display: none;">
54
+ <div class="info-row">
55
+ <span class="label">Database:</span>
56
+ <div>
57
+ <span class="value" id="dbValue"></span>
58
+ <span class="value" id="dbStatus"></span>
59
+ </div>
60
+ </div>
61
+ </section>
62
+
63
+ <!-- Transport Info -->
64
+ <section class="info-section">
65
+ <div class="info-row">
66
+ <span class="label">HTTP Transport:</span>
67
+ <span class="value"><code>GET /sse</code> • <code>POST /mcp</code></span>
68
+ </div>
69
+ </section>
70
+
71
+ <!-- Auth Info -->
72
+ <section class="info-section" id="authSection">
73
+ <div class="info-row">
74
+ <span class="label">MCP Auth:</span>
75
+ <span class="value" id="mcpAuthValue">-</span>
76
+ </div>
77
+ <div class="info-row">
78
+ <span class="label">Admin Panel:</span>
79
+ <span class="value" id="adminPanelValue">-</span>
80
+ </div>
81
+ </section>
82
+
83
+ <!-- OpenAPI Documentation -->
84
+ <section class="info-section" id="swaggerSection" style="display: none;">
85
+ <div class="info-row">
86
+ <span class="label">API Reference:</span>
87
+ <span class="value">
88
+ <a href="/docs" target="_blank" rel="noopener" class="clickable">OpenAPI Documentation</a>
89
+ <a href="/api/openapi.json" target="_blank" rel="noopener" class="clickable">JSON</a> |
90
+ <a href="/api/openapi.yaml" target="_blank" rel="noopener" class="clickable">YAML</a>
91
+ </span>
92
+ </div>
93
+ </section>
94
+
95
+ <!-- Consul -->
96
+ <section class="info-section" id="consulSection" style="display: none;">
97
+ <div class="info-row">
98
+ <span class="label">Consul id:</span>
99
+ <span class="value">
100
+ <a href="#" id="consulLink" target="_blank" rel="noopener" class="clickable"></a>
101
+ </span>
102
+ </div>
103
+ </section>
104
+
105
+ <!-- Health Check -->
106
+ <section class="info-section">
107
+ <div class="info-row">
108
+ <span class="label">Health Check:</span>
109
+ <span class="value clickable" onclick="openHealthCheckModal()">Check Server Health</span>
110
+ </div>
111
+ </section>
112
+ </main>
113
+
114
+ <!-- Modal Overlays -->
115
+ <!-- Tools Modal -->
116
+ <div id="tools-modal" class="modal-overlay" style="display: none;">
117
+ <div class="modal-content">
118
+ <div class="modal-header">
119
+ <h3>Available Tools</h3>
120
+ <button class="modal-close" onclick="closeModal('tools')">&times;</button>
121
+ </div>
122
+ <div class="modal-body">
123
+ <div class="table-container">
124
+ <table class="details-table" id="tools-table">
125
+ <thead>
126
+ <tr>
127
+ <th>Name</th>
128
+ <th>Description</th>
129
+ <th>Actions</th>
130
+ </tr>
131
+ </thead>
132
+ <tbody>
133
+ <!-- Content will be dynamically loaded -->
134
+ </tbody>
135
+ </table>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+
141
+ <!-- Resources Modal -->
142
+ <div id="resources-modal" class="modal-overlay" style="display: none;">
143
+ <div class="modal-content">
144
+ <div class="modal-header">
145
+ <h3>Available Resources</h3>
146
+ <button class="modal-close" onclick="closeModal('resources')">&times;</button>
147
+ </div>
148
+ <div class="modal-body">
149
+ <div class="table-container">
150
+ <table class="details-table" id="resources-table">
151
+ <thead>
152
+ <tr>
153
+ <th>URI</th>
154
+ <th>Name</th>
155
+ <th>Description</th>
156
+ <th>MIME Type</th>
157
+ <th>Actions</th>
158
+ </tr>
159
+ </thead>
160
+ <tbody>
161
+ <!-- Content will be dynamically loaded -->
162
+ </tbody>
163
+ </table>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+
169
+ <!-- Prompts Modal -->
170
+ <div id="prompts-modal" class="modal-overlay" style="display: none;">
171
+ <div class="modal-content">
172
+ <div class="modal-header">
173
+ <h3>Available Prompts</h3>
174
+ <button class="modal-close" onclick="closeModal('prompts')">&times;</button>
175
+ </div>
176
+ <div class="modal-body">
177
+ <div class="table-container">
178
+ <table class="details-table" id="prompts-table">
179
+ <thead>
180
+ <tr>
181
+ <th>Name</th>
182
+ <th>Actions</th>
183
+ </tr>
184
+ </thead>
185
+ <tbody>
186
+ <!-- Content will be dynamically loaded -->
187
+ </tbody>
188
+ </table>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+ <!-- Health Check Modal -->
195
+ <div id="health-modal" class="modal-overlay" style="display: none;">
196
+ <div class="modal-content">
197
+ <div class="modal-header">
198
+ <h3>Server Health Check</h3>
199
+ <button class="modal-close" onclick="closeModal('health')">&times;</button>
200
+ </div>
201
+ <div class="modal-body">
202
+ <div class="loading-cell" id="health-loading">
203
+ <div class="loading-spinner"></div>
204
+ Checking server health...
205
+ </div>
206
+ <pre class="json-content" id="health-result" style="display: none;"></pre>
207
+ <div class="error-message" id="health-error" style="display: none;"></div>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ <!-- Footer -->
213
+ <footer class="simple-footer">
214
+ <p id="footerContent"></p>
215
+ </footer>
216
+ </div>
217
+
218
+ <script src="/static/home/script.js"></script>
219
+ </body>
220
+ </html>