Skip to main content
Glama

Open Food Facts MCP Server

by caleb-conner
types.ts1.57 kB
import { z } from 'zod'; export const ProductSchema = z.object({ code: z.string(), product_name: z.string().optional(), brands: z.string().optional(), categories: z.string().optional(), ingredients_text: z.string().optional(), nutriments: z.record(z.union([z.string(), z.number()])).optional(), nutriscore_grade: z.string().optional(), nova_group: z.union([z.string(), z.number()]).optional(), ecoscore_grade: z.string().optional(), image_url: z.string().optional(), image_front_url: z.string().optional(), quantity: z.string().optional(), packaging: z.string().optional(), labels: z.string().optional(), countries: z.string().optional(), manufacturing_places: z.string().optional(), stores: z.string().optional(), created_datetime: z.union([z.string(), z.number()]).optional(), last_modified_datetime: z.union([z.string(), z.number()]).optional(), }); export const ProductResponseSchema = z.object({ status: z.number(), status_verbose: z.string(), product: ProductSchema.optional(), }); export const SearchResponseSchema = z.object({ count: z.number(), page: z.number(), page_count: z.number(), page_size: z.number(), products: z.array(ProductSchema), }); export type Product = z.infer<typeof ProductSchema>; export type ProductResponse = z.infer<typeof ProductResponseSchema>; export type SearchResponse = z.infer<typeof SearchResponseSchema>; export interface OpenFoodFactsConfig { baseUrl: string; userAgent: string; rateLimits: { products: number; search: number; facets: number; }; }

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/caleb-conner/open-food-facts-mcp'

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