Skip to main content
Glama

cognee-mcp

Settings.tsx6.74 kB
// import { useCallback, useEffect, useState } from 'react'; // import { // CTAButton, // DropdownSelect, // FormGroup, // FormInput, // FormLabel, // Input, // Spacer, // Stack, // useBoolean, // } from 'ohmy-ui'; // import { LoadingIndicator } from '@/ui/App'; // import { fetch } from '@/utils'; // interface SelectOption { // label: string; // value: string; // } // interface SettingsForm extends HTMLFormElement { // vectorDBUrl: HTMLInputElement; // vectorDBApiKey: HTMLInputElement; // llmProvider: HTMLInputElement; // llmModel: HTMLInputElement; // llmApiKey: HTMLInputElement; // llmEndpoint: HTMLInputElement; // llmApiVersion: HTMLInputElement; // } // const defaultProvider = { // label: 'OpenAI', // value: 'openai', // }; // const defaultModel = { // label: 'gpt-5-mini', // value: 'gpt-5-mini', // }; // export default function Settings({ onDone = () => {}, submitButtonText = 'Save' }) { // const [llmConfig, setLLMConfig] = useState<{ // apiKey: string; // model: string; // endpoint: string; // apiVersion: string; // provider: string; // }>(); // const [vectorDBConfig, setVectorDBConfig] = useState<{ // url: string; // apiKey: string; // provider: SelectOption; // providers: SelectOption[]; // }>(); // const { // value: isSaving, // setTrue: startSaving, // setFalse: stopSaving, // } = useBoolean(false); // const saveConfig = (event: React.FormEvent<SettingsForm>) => { // event.preventDefault(); // const formElements = event.currentTarget; // const newVectorConfig = { // provider: vectorDBConfig?.provider.value, // url: formElements.vectorDBUrl.value, // apiKey: formElements.vectorDBApiKey.value, // }; // const newLLMConfig = { // provider: formElements.llmProvider.value, // model: formElements.llmModel.value, // apiKey: formElements.llmApiKey.value, // endpoint: formElements.llmEndpoint.value, // apiVersion: formElements.llmApiVersion.value, // }; // startSaving(); // fetch('/v1/settings', { // method: 'POST', // headers: { // 'Content-Type': 'application/json', // }, // body: JSON.stringify({ // llm: newLLMConfig, // vectorDb: newVectorConfig, // }), // }) // .then(() => { // onDone(); // }) // .finally(() => stopSaving()); // }; // const handleVectorDBChange = useCallback((newVectorDBProvider: SelectOption) => { // setVectorDBConfig((config) => { // if (config?.provider !== newVectorDBProvider) { // return { // ...config, // providers: config?.providers || [], // provider: newVectorDBProvider, // url: '', // apiKey: '', // }; // } // return config; // }); // }, []); // useEffect(() => { // const fetchConfig = async () => { // const response = await fetch('/v1/settings'); // const settings = await response.json(); // if (!settings.llm.provider) { // settings.llm.provider = settings.llm.providers[0].value; // } // if (!settings.llm.model) { // settings.llm.model = settings.llm.models[settings.llm.provider][0].value; // } // if (!settings.vectorDb.provider) { // settings.vectorDb.provider = settings.vectorDb.providers[0]; // } else { // settings.vectorDb.provider = settings.vectorDb.providers.find((provider: SelectOption) => provider.value === settings.vectorDb.provider); // } // setLLMConfig(settings.llm); // setVectorDBConfig(settings.vectorDb); // }; // fetchConfig(); // }, []); // return ( // <form onSubmit={saveConfig} style={{ width: "100%", overflowY: "auto", maxHeight: "500px" }}> // <Stack gap="4" orientation="vertical"> // <Stack gap="4" orientation="vertical"> // <FormGroup orientation="vertical" align="center/" gap="2"> // <FormLabel>LLM provider:</FormLabel> // <FormInput> // <Input defaultValue={llmConfig?.provider} name="llmProvider" placeholder="LLM provider" /> // </FormInput> // </FormGroup> // <FormGroup orientation="vertical" align="center/" gap="2"> // <FormLabel>LLM model:</FormLabel> // <FormInput> // <Input defaultValue={llmConfig?.model} name="llmModel" placeholder="LLM model" /> // </FormInput> // </FormGroup> // <FormGroup orientation="vertical" align="center/" gap="2"> // <FormLabel>LLM endpoint:</FormLabel> // <FormInput> // <Input defaultValue={llmConfig?.endpoint} name="llmEndpoint" placeholder="LLM endpoint url" /> // </FormInput> // </FormGroup> // <FormGroup orientation="vertical" align="center/" gap="2"> // <FormLabel>LLM API key:</FormLabel> // <FormInput> // <Input defaultValue={llmConfig?.apiKey} name="llmApiKey" placeholder="LLM API key" /> // </FormInput> // </FormGroup> // <FormGroup orientation="vertical" align="center/" gap="2"> // <FormLabel>LLM API version:</FormLabel> // <FormInput> // <Input defaultValue={llmConfig?.apiVersion} name="llmApiVersion" placeholder="LLM API version" /> // </FormInput> // </FormGroup> // </Stack> // <Stack gap="2" orientation="vertical"> // <FormGroup orientation="vertical" align="center/" gap="2"> // <FormLabel>Vector DB provider:</FormLabel> // <DropdownSelect // value={vectorDBConfig?.provider || null} // options={vectorDBConfig?.providers || []} // onChange={handleVectorDBChange} // /> // </FormGroup> // <FormInput> // <Input defaultValue={vectorDBConfig?.url} name="vectorDBUrl" placeholder="Vector DB instance url" /> // </FormInput> // <FormInput> // <Input defaultValue={vectorDBConfig?.apiKey} name="vectorDBApiKey" placeholder="Vector DB API key" /> // </FormInput> // <Stack align="/end"> // <Spacer top="2"> // <CTAButton type="submit"> // <Stack gap="2" orientation="vertical" align="center/"> // {submitButtonText} // {isSaving && <LoadingIndicator />} // </Stack> // </CTAButton> // </Spacer> // </Stack> // </Stack> // </Stack> // </form> // ) // }

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/topoteretes/cognee'

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