{"name":"io.github.cyanheads/usda-mcp-server","slug":"cyanheads-usda-mcp-server","title":null,"description":"Search foods, compare nutrients, and look up the full USDA FoodData Central database.","url":"https://mcp.market/server/cyanheads-usda-mcp-server","rating":null,"grade":"A","score":93,"certified":false,"status":"active","category":"data","tags":["data","search"],"presence":{"score":36,"stars":1,"forks":0,"downloads_week":422,"last_push_at":"2026-09-16T11:07:26.000Z","license":"Apache-2.0"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/cyanheads/usda-mcp-server","website":null,"version":"0.1.10","remotes":[{"type":"streamable-http","url":"https://usda.caseyjhand.com/mcp"}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/usda-mcp-server","version":"0.1.10","runtimeHint":"bun","transport":{"type":"stdio"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:stdio","type":"positional"}],"environmentVariables":[{"description":"USDA FoodData Central API key from data.gov. Required for all food data requests.","isRequired":true,"format":"string","name":"USDA_FDC_API_KEY"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/usda-mcp-server","version":"0.1.10","runtimeHint":"bun","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"packageArguments":[{"value":"run","type":"positional"},{"value":"start:http","type":"positional"}],"environmentVariables":[{"description":"USDA FoodData Central API key from data.gov. Required for all food data requests.","isRequired":true,"format":"string","name":"USDA_FDC_API_KEY"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]}],"tools":[{"name":"usda_compare_foods","description":"Compare nutrients side-by-side for 2–5 foods. Returns a structured table — one row per nutrient, one column per food — formatted as markdown. Best for \"spinach vs kale iron\" or \"which has more protein?\" questions. Omit nutrients[] to use the 12 most common defaults (energy, protein, fat, saturated fat, carbs, fiber, sugars, sodium, potassium, calcium, iron, vitamin C); provide nutrients[] with specific FDC IDs to compare different nutrients. All values are scaled to the same gram basis (default 100g). If one or more FDC IDs are not found, the comparison proceeds with the valid foods — only throws too_few_foods when fewer than 2 IDs return data.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fdcIds":{"minItems":2,"maxItems":5,"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"description":"FDC IDs to compare — 2 to 5 foods. Use usda_search_foods to discover IDs."},"nutrients":{"description":"Nutrient IDs to include in the comparison. Defaults to the 12 most common: energy (1008), protein (1003), total fat (1004), saturated fat (1258), carbohydrate (1005), fiber (1079), total sugars (2000), sodium (1093), potassium (1092), calcium (1087), iron (1089), vitamin C (1162). Use usda_list_nutrients to look up other IDs.","type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991}},"quantity":{"default":100,"description":"Gram basis for comparison. All values scaled to this amount. Must be positive. Default 100.","type":"number","exclusiveMinimum":0},"unit":{"default":"g","description":"Unit for quantity. Default \"g\". Does not support \"serving\" (use a fixed gram basis for consistent comparison).","type":"string","enum":["g","oz","lb","kg"]}},"required":["fdcIds"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"usda_get_food","description":"Get the full nutrient profile for one food by FDC ID. Returns all available nutrients (or a filtered subset via the nutrients[] param) with optional per-portion scaling. Use usda_search_foods to discover FDC IDs. Provide quantity + unit to scale all nutrient values from per-100g to the specified portion (e.g. quantity=200, unit=\"g\" → per-200g values). Use unit=\"serving\" to scale to the food's first defined portion weight. Narrow nutrients[] to specific IDs to reduce response size for focused queries.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fdcId":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"FDC ID of the food. Use usda_search_foods to discover IDs."},"nutrients":{"description":"Filter to specific nutrient IDs (e.g. [1003, 1004, 1005, 1008] for protein, fat, carbs, energy). Use usda_list_nutrients to look up IDs. Omit to return all available nutrients.","type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991}},"quantity":{"description":"Amount of food to scale nutrient values to. Must be positive. When provided, unit is required. Omit for per-100g values (FDC database native basis).","type":"number","exclusiveMinimum":0},"unit":{"description":"Unit for quantity. \"serving\" uses the food's first defined portion weight. Required when quantity is provided.","type":"string","enum":["g","oz","lb","kg","serving"]}},"required":["fdcId"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"usda_get_foods","description":"Fetch nutrient profiles for 2–20 foods in a single API call. More efficient than calling usda_get_food N times when you already have multiple FDC IDs. All values are per 100g (no portion scaling). Use the nutrients[] filter to limit response size — strongly recommended for batch calls. For side-by-side comparison with a formatted table, use usda_compare_foods instead. Failed IDs (not found or no data) are reported in the failed[] array rather than aborting the entire batch.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fdcIds":{"minItems":2,"maxItems":20,"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"description":"FDC IDs to fetch — 2 to 20 IDs. Use usda_search_foods to discover IDs."},"nutrients":{"description":"Filter to specific nutrient IDs (e.g. [1003, 1004, 1005, 1008]). Strongly recommended — full profiles can be large. Use usda_list_nutrients to look up IDs.","type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991}}},"required":["fdcIds"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"usda_list_nutrients","description":"Look up the FDC nutrient reference table — all tracked nutrients with their numeric IDs, names, SR reference numbers, units, and categories. Use to resolve a nutrient name (e.g. \"vitamin C\") to its FDC ID (1162) before passing it to the nutrients[] filter on other tools. Filter by category (macronutrients, vitamins, minerals, lipids, amino_acids, or other) to narrow results. The data is static — call once and reuse the IDs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter to a nutrient category. Omit to return all ~150 tracked nutrients. Options: macronutrients, vitamins, minerals, lipids, amino_acids, other.","type":"string","enum":["macronutrients","vitamins","minerals","lipids","amino_acids","other"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"usda_search_foods","description":"Search USDA FoodData Central foods by keyword. Returns matching foods with FDC IDs and a preview of key nutrients (energy, protein, fat, carbs — not guaranteed complete). Use the returned fdcId with usda_get_food for the full nutrient profile, or usda_compare_foods for side-by-side comparisons. When dataType is omitted, defaults to SR Legacy (common whole foods with complete profiles) — or to Branded when brandOwner is set, since only Branded records carry one. Set dataType to [\"Branded\"] for packaged products, or include a UPC/GTIN code as the query. Pass brandOwner (e.g. \"General Mills\") to narrow branded results.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Search terms — food name, ingredient, or UPC/GTIN code for branded products. Examples: \"chicken breast raw\", \"banana\", \"012345678901\"."},"dataType":{"description":"FDC data sources to search. Omitting this defaults to [\"SR Legacy\"] (common whole foods, complete nutrient profiles), or to [\"Branded\"] when brandOwner is set. Include \"Branded\" for packaged products. Multiple values allowed.","type":"array","items":{"type":"string","enum":["SR Legacy","Foundation","Survey (FNDDS)","Branded"]}},"brandOwner":{"description":"Filter branded results by brand owner name (e.g. \"General Mills\", \"Kraft\"). Only Branded records carry one, so setting this defaults dataType to [\"Branded\"] unless dataType is given explicitly.","type":"string"},"foodCategory":{"description":"Filter by USDA food category (e.g. \"Poultry Products\", \"Vegetables and Vegetable Products\"). Case-sensitive.","type":"string"},"pageSize":{"default":10,"description":"Number of results per page. Default 10, maximum 50.","type":"integer","minimum":1,"maximum":50},"pageNumber":{"default":1,"description":"Page number (1-based). Use with totalPages to paginate.","type":"integer","minimum":1,"maximum":9007199254740991}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}}],"scan":{"score":93,"grade":"A","scanned_at":"2026-09-19T10:14:29.062Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T10:14:29.036Z","components":{"code":{"score":25,"max":25,"notes":["30 source files scanned","30 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 334ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://usda.caseyjhand.com/mcp","reachable":true,"authRequired":false,"latencyMs":334,"serverInfo":{"name":"usda-mcp-server","version":"0.1.10"}}],"packages":[{"registryType":"npm","identifier":"@cyanheads/usda-mcp-server","version":"0.1.10","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-16T11:02:19.037Z","repositoryUrl":"git+https://github.com/cyanheads/usda-mcp-server.git","weeklyDownloads":211},{"registryType":"npm","identifier":"@cyanheads/usda-mcp-server","version":"0.1.10","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-16T11:02:19.037Z","repositoryUrl":"git+https://github.com/cyanheads/usda-mcp-server.git","weeklyDownloads":211}],"repo":{"found":true,"owner":"cyanheads","repo":"usda-mcp-server","archived":false,"pushedAt":"2026-09-16T11:07:26Z","stars":1,"forks":0,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10339515?v=4","ownerCreatedAt":"2014-12-29T13:01:12Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/10339515?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":422,"license":"Apache-2.0","lastPushAt":"2026-09-16T11:07:26.000Z","score":36}}}},"grade_history":[],"reviews":[]}