(name: string)
| 191 | |
| 192 | // mcp get (lines 4694–4786) |
| 193 | export async function mcpGetHandler(name: string): Promise<void> { |
| 194 | logEvent('tengu_mcp_get', { |
| 195 | name: name as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS |
| 196 | }); |
| 197 | const server = getMcpConfigByName(name); |
| 198 | if (!server) { |
| 199 | cliError(`No MCP server found with name: ${name}`); |
| 200 | } |
| 201 | |
| 202 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 203 | console.log(`${name}:`); |
| 204 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 205 | console.log(` Scope: ${getScopeLabel(server.scope)}`); |
| 206 | |
| 207 | // Check server health |
| 208 | const status = await checkMcpServerHealth(name, server); |
| 209 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 210 | console.log(` Status: ${status}`); |
| 211 | |
| 212 | // Intentionally excluding sse-ide servers here since they're internal |
| 213 | if (server.type === 'sse') { |
| 214 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 215 | console.log(` Type: sse`); |
| 216 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 217 | console.log(` URL: ${server.url}`); |
| 218 | if (server.headers) { |
| 219 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 220 | console.log(' Headers:'); |
| 221 | for (const [key, value] of Object.entries(server.headers)) { |
| 222 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 223 | console.log(` ${key}: ${value}`); |
| 224 | } |
| 225 | } |
| 226 | if (server.oauth?.clientId || server.oauth?.callbackPort) { |
| 227 | const parts: string[] = []; |
| 228 | if (server.oauth.clientId) { |
| 229 | parts.push('client_id configured'); |
| 230 | const clientConfig = getMcpClientConfig(name, server); |
| 231 | if (clientConfig?.clientSecret) parts.push('client_secret configured'); |
| 232 | } |
| 233 | if (server.oauth.callbackPort) parts.push(`callback_port ${server.oauth.callbackPort}`); |
| 234 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 235 | console.log(` OAuth: ${parts.join(', ')}`); |
| 236 | } |
| 237 | } else if (server.type === 'http') { |
| 238 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 239 | console.log(` Type: http`); |
| 240 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 241 | console.log(` URL: ${server.url}`); |
| 242 | if (server.headers) { |
| 243 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 244 | console.log(' Headers:'); |
| 245 | for (const [key, value] of Object.entries(server.headers)) { |
| 246 | // biome-ignore lint/suspicious/noConsole:: intentional console output |
| 247 | console.log(` ${key}: ${value}`); |
| 248 | } |
| 249 | } |
| 250 | if (server.oauth?.clientId || server.oauth?.callbackPort) { |
no test coverage detected