Skip to main content
Glama

Convex MCP server

Official
by get-convex
projects.ts2.51 kB
import { useRouter } from "next/router"; import { SWRConfiguration } from "swr"; import { useInitialData } from "hooks/useServerSideData"; import { useCurrentTeam } from "./teams"; import { useBBMutation, useBBQuery } from "./api"; export function useCurrentProject() { const team = useCurrentTeam(); const projects = useProjects(team?.id); const { query } = useRouter(); const { project: projectSlug } = query; return projects?.find((p) => p.slug === projectSlug); } export function useProjectById(projectId: number | undefined) { const { data } = useBBQuery({ path: "/projects/{project_id}", pathParams: { project_id: projectId?.toString() || "", }, }); return data; } export function useProjects( teamId: number | undefined, refreshInterval?: SWRConfiguration["refreshInterval"], ) { const [initialData] = useInitialData(); const { data } = useBBQuery({ path: "/teams/{team_id}/projects", pathParams: { team_id: teamId?.toString() || "", }, // If initial data has been loaded via SSR, we don't need to load projects. swrOptions: { refreshInterval, revalidateOnMount: !initialData }, }); return data; } export function useCreateProject(teamId?: number) { return useBBMutation({ path: "/create_project", pathParams: undefined, mutateKey: "/teams/{team_id}/projects", mutatePathParams: { team_id: teamId?.toString() || "", }, googleAnalyticsEvent: "create_project_dash", }); } export function useUpdateProject(projectId: number) { return useBBMutation({ path: "/projects/{project_id}", pathParams: { project_id: projectId.toString(), }, successToast: "Project updated.", method: "put", }); } export function useDeleteProject( teamId?: number, projectId?: number, projectName?: string, ) { return useBBMutation({ path: "/delete_project/{project_id}", pathParams: { project_id: projectId?.toString() || "", }, mutateKey: "/teams/{team_id}/projects", mutatePathParams: { team_id: teamId?.toString() || "", }, successToast: projectName ? `Deleted project: ${projectName}.` : undefined, redirectTo: "/", }); } export function useDeleteProjects(teamId: number | undefined) { return useBBMutation({ path: "/delete_projects", pathParams: undefined, mutateKey: "/teams/{team_id}/projects", mutatePathParams: { team_id: teamId?.toString() || "", }, successToast: "Projects deleted.", }); }

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/get-convex/convex-backend'

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