Skip to main content
Glama

Ultra MCP

config.ts2.85 kB
import { z } from 'zod'; import { router, publicProcedure } from '../trpc'; import { getConfigManager } from '../../../config/manager'; import { ConfigSchema } from '../../../config/schema'; export const configRouter = router({ get: publicProcedure.query(async () => { const configManager = await getConfigManager(); const config = await configManager.getConfig(); // Mask API keys for security const maskedConfig = { openai: { configured: !!config.openai?.apiKey, apiKey: config.openai?.apiKey ? '***' + config.openai.apiKey.slice(-4) : undefined, baseURL: config.openai?.baseURL, }, google: { configured: !!config.google?.apiKey, apiKey: config.google?.apiKey ? '***' + config.google.apiKey.slice(-4) : undefined, baseURL: config.google?.baseURL, }, azure: { configured: !!config.azure?.apiKey, apiKey: config.azure?.apiKey ? '***' + config.azure.apiKey.slice(-4) : undefined, baseURL: config.azure?.baseURL, }, xai: { configured: !!config.xai?.apiKey, apiKey: config.xai?.apiKey ? '***' + config.xai.apiKey.slice(-4) : undefined, baseURL: config.xai?.baseURL, }, }; return maskedConfig; }), update: publicProcedure .input( z.object({ provider: z.enum(['openai', 'google', 'azure', 'xai']), config: z.object({ apiKey: z.string().optional(), baseURL: z.string().optional(), }), }) ) .mutation(async ({ input }) => { const configManager = await getConfigManager(); if (input.config.apiKey) { await configManager.setApiKey(input.provider, input.config.apiKey); } if (input.config.baseURL !== undefined) { await configManager.setBaseURL(input.provider, input.config.baseURL || undefined); } return { success: true }; }), testConnection: publicProcedure .input( z.object({ provider: z.enum(['openai', 'google', 'azure', 'xai']), }) ) .mutation(async ({ input }) => { // TODO: Implement connection testing return { success: true, message: `${input.provider} connection successful`, }; }), reset: publicProcedure .input( z.object({ provider: z.enum(['openai', 'google', 'azure', 'xai']).optional(), }) ) .mutation(async ({ input }) => { const configManager = await getConfigManager(); if (input.provider) { // Reset specific provider await configManager.setApiKey(input.provider, undefined); await configManager.setBaseURL(input.provider, undefined); } else { // Reset all await configManager.reset(); } return { success: true }; }), });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RealMikeChong/ultra-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server