← MCP servers · firebase

Genkit

BLOCKgrade F · trust 28/100

Open-source framework for building agentic apps in JavaScript, Go, Dart, and Python, built and used in production by Google

agentsaiembeddersgenkitllmmultimodalragvector database

Overview

From the repository's own README, as read at the audited commit.

![Genkit logo](docs/resources/genkit-logo-dark.png#gh-dark-mode-only 'Genkit')![Genkit logo](docs/resources/genkit-logo.png#gh-light-mode-only 'Genkit')[Genkit](https://genkit.dev) is an open-source framework for building full-stack AI-powered applications, built and used in production by Google's Firebase. It provides SDKs for multiple programming languages with varying levels of stability:- **JavaScript/TypeScript**: Production-ready with full feature support- **Go**: Production-ready with full feature support- **Python (Beta)**: Wide feature support approaching production-readiness- **Dart (Preview)**: Early development with core functionalityIt offers a unified interface for integrating AI models from providers like [Google](https://genkit.dev/docs/plugins/google-genai), [OpenAI](https://genkit.dev/docs/plugins/openai), [Anthropic](https://thefireco.github.io/genkit-plugins/docs/plugins/genkitx-anthropic), [Ollama](https://genkit.dev/docs/plugins/ollama/), and more. Rapidly build and deploy production-ready chatbots, automations, and recommendation systems using streamlined APIs for multimodal content, structured outputs, tool calling, and agentic workflows.Get started with just a few lines of code:```tsimport { genkit } from 'genkit';import { googleAI } from '@genkit-ai/google-genai';const ai = genkit({ plugins: [googleAI()] });const { text } = await ai.generate({    model: googleAI.model('gemini-flash-latest'),    prompt: 'What is the meaning of life?'});```## Explore & build with GenkitPlay with AI sample apps, with visualizations of the Genkit code that powersthem, at no cost to you.[Explore Genkit by Example](https://examples.genkit.dev)## Key capabilities<table>  <tr>    <td><strong>Broad AI model support</strong></td>    <td>Use a unified interface to integrate with hundreds of models from providers like <a href="https://genkit.dev/docs/plugins/google-genai">Google</a>, <a href="https://genkit.dev/docs/plugins/openai">    OpenAI</a>, <a href="https://thef

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add test_js_app --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env CUSTOM_KEY=${CUSTOM_KEY} --env DB_PASSWORD=${DB_PASSWORD} --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "test_js_app": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "CUSTOM_KEY": "${CUSTOM_KEY}",
        "DB_PASSWORD": "${DB_PASSWORD}",
        "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}"
      }
    }
  }
}

Exposed tools (150) 135 read · 14 write · 1 destructive

Blast radius: 1 tool can delete or overwrite. An agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
BulbasaurreadA Grass/Poison-type Pokemon that grows into a powerful Venusaur.
ButtonreadA clickable button that fires an action back to the agent.
CardreadA visually-contained card wrapping a single child.
CharmanderreadA Fire-type Pokemon that evolves into the powerful Charizard.
CheckBoxreadA labeled checkbox.
ColumnreadLays out children vertically.
DividerreadA horizontal or vertical separator line.
IconreadDisplays a named material icon.
ImagereadDisplays an image from a URL.
JigglypuffreadA Normal/Fairy-type Pokemon with a hypnotic singing ability.
ListreadA list of children.
PikachureadAn Electric-type Pokemon known for its strong electric attacks.
RowreadLays out children horizontally.
SliderreadA numeric slider.
SquirtlereadA Water-type Pokemon known for its water-based attacks and high defense.
TextwriteDisplays a run of text. For headings/titles set the
TextFieldreadA single- or multi-line text input.
WidgetreadA widget.
a2uireadAdds A2UI (Agent-to-UI) streaming UI support: injects catalog
addwriteadd two numbers together
addTaskwriteAdd a new task to the task list. Returns the newly created task.
agentsreadInjects per-agent delegation tools for calling registered sub-agents.
artifactsreadProvides read_artifact and write_artifact tools for interacting
askQuestionreaduse this to ask the user a clarifying question
ask_userreadAsk the user a question when you need clarification, a preference,
badSchemaToolreadA tool with an invalid schema type
bad_toolreada tool
bad_tool_approvedreada tool
catalogAgentreadCatalog Agent can help customers browse and search products
coderreadWrites TypeScript code
codingAgentwriteAn expert AI coding assistant that can read, create, edit files,
confirmActionreadneeds human confirmation
confirmBookingreadConfirm with the user before booking a dish.
dailySpecialreadGet today
dangerousToolreadA tool that requires confirmation
dapJokeToolreadDAP joke tool
datePickerreaduser can use this UI tool to enter a date (prefer this over asking the user to enter the date manually)
dynamicreaddynamic interrupt
dynamicInterruptreaddescription
dynamic_preservereadtest
dynamic_restartablereadtest
echoToolreadecho
fallbackreadFallback to a different model on specific error statuses.
fallbackToolreada tool with fallback output
fetchCatalogreadFetches the complete product catalog with all available items
fetchMostPopularItemsreadFetches the most popular items in the catalog (top 3)
filesystemreadInjects tools for reading, writing, and searching files in a directory.
fooreadtool foo
foozreadgets fooz
gablorkenreadcalculates a gablorken
gablorkenToolreaduse when need to calculate a gablorken
getAttractionsreadGet popular tourist attractions for a given city.
getColorreadgets a random color
getExchangeRatewriteLook up the current exchange rate for an international transfer.
getFlightInforeadGet mock flight information between two cities on a given date.
getProductDetailsreadGet detailed information about a specific product by ID
getRecentGradesreadretrieves recent grades for a specific student
getSomeMarkdownreadGets some markdown formatted text to display on the UI.
getSomePreformattedTextreadGets some pre-formatted text to display on the UI.
getStoreInforeadGet store information including hours, location, and contact details
getTimereadGet the current time
getWeatherreadGet current weather
get_current_weatherreadgets weather
get_traceread
get_usage_guideread
get_weatherreadReturns the weather
good_toolreada tool
happyreadeverybody together now
injectedToolreaddesc
interruptToolreadAn interrupt tool
interrupterreadalways interrupts
interruptingToolreaddescription
jokeSubjectGeneratorreadcan be called to generate a subject for a joke
list_flowsread
list_genkit_docsread
lookupreadlook something up
lookupUsersreaduse this tool to list users
main.rsreadPrimary application entry point
menuLookupToolreaduse this tool to look up the menu for a given date
middlewareToolreadinjected by middleware
mockToolreadA mock tool
multiToolreada tool with multiple parts
multipartreadtest
mw1readtest mw1
myFuncreaddesc
myInterruptreadAsk user
my_toolreada tool
myagentreadRegistry description (should be overridden).
needs_approvalreadRequires human approval before proceeding.
processPaymentwriteProcess a payment for an order
read_artifactreadReads the content of a named artifact from the session.
read_genkit_docsread
realInterruptreadA real interrupt
registeredreadregistered interrupt
regularreadtest
regularActionreadtest
removeTaskdestructiveRemove a task from the list by its ID.
reportAbsencereaduse this tool to mark a specific student as absent on one or more days
reportTardyreaduse this tool to mark a specific student tardy for a given date
researcherreadA thorough research assistant that searches the web and provides well-sourced answers.
reservationToolreaduse this tool to try to book a reservation
restartToolreadA tool that requires confirmation before executing
resumablereadinterrupts unless resumed with {status:
resumableToolreaddescription
retrywriteRetries a request a specified number of times when a specific set of errors occurs
riskyActionwritePerforms an action that must be confirmed via restart
routingAgentreadThis agent helps with answering inquiries and requests.
run_flowwrite
run_shellwriteExecute a shell command in the workspace directory. Use for running
searchCatalogreadSearch for products by name, category, or keyword
searchEventsreaduse this when asked about any time/location for school events including extra curriculars like clubs
search_genkit_docsread
sensitiveToolreadTool with sensitive inputs
simplereadsimple interrupt
simple2readsimple2
simpleToolreaddescription
skillsreadInjects system instructions and tools for using skills.
smartagentreadA very smart agent that knows everything.
someListFilesToolreadLists files
someToolreadhello world
start_runtimewrite
summarize_weatherreadSummarizes a forecast
tellAFunnyJokereadTells jokes about an input topic. Use this tool whenever user asks you to tell a joke.
tellAJokereadTell a joke
testreadtest
testActionreadA test action
testMediaToolreadA tool for testing audio and resource links
testMultipartToolreadA tool for testing multipart
testStructuredToolreadA tool for testing structured content
testToolreadA simple test tool
test_httpread
test_metareadtest
test_no_metareadtest
test_preservereadtest
test_restartablereadtest
todaysMenureadUse this tool to retrieve all the items on today
toggleTaskreadToggle a task between done and not-done by its ID. Returns the updated task or an error message.
toolAreadtoolA descr
toolApprovalreadInterrupts tool execution unless the tool is in the approved list or approved via metadata.
toolBreadtoolB it is
transferMoneywriteTransfer money to a specified account.
transferToAgentwriteCall this to transfer conversation control to a different specialist agent.
triageAgentreadTriage Agent
truthreadalways returns true
upcomingHolidaysreadcan retrieve information about upcoming holidays
use_skillreadUse a skill by its name.
userApprovalreadAsk the user for approval before proceeding with a sensitive action.
weatherreadGet the weather for a city
weatherToolreaduse this tool to display weather
write_artifactwriteCreates or updates a named artifact in the session.

Details

Source
firebase/genkit
npm
test_js_app@1.0.0
PyPI
smoke
Transports
sse · stdio · streamable-http
Credentials it reads
ANTHROPIC_API_KEYCUSTOM_KEYDB_PASSWORDDEEPSEEK_API_KEYDJANGO_SECRET_KEYGEMINI_API_KEYGOOGLE_API_KEYGOOGLE_GENAI_API_KEYOPENAI_API_KEYPINECONE_API_KEYVERTEX_API_KEYXAI_API_KEY
License
Apache-2.0
Stars
6,449 · pushed 0d ago

Trust audit

Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (3 observation(s))
Network
declared (6 observation(s))
Shell
declared (4 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
js/core/src/tracing.ts:56
const importModule = new Function(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
py/packages/genkit-amazon-bedrock/src/genkit_amazon_bedrock/transport.py:51
'AWS_DEFAULT_REGION, or a region in ~/.aws/config'
Why it matters. touches a credential store
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
js/testapps/model-armor/README.md:5
prompt injection, jailbreak attempts, and sensitive data before sending
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
js/testapps/model-armor/README.md:12
| Content Filtering | `modelArmorFlow` | Generation with Model Armor middleware for PI/jailbreak and SDP filters |
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
js/testapps/model-armor/README.md:65
- Error details include the specific filter that triggered (PI/jailbreak, SDP)
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
genkit-tools/cli/src/commands/dev-test-model.ts:69
'iVBORw0KGgoAAAANSUhEUgAAByIAAAGdCAYAAABel7RVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAADv9SURBVHgB7d1bchPn9jfgF58qdx97BH9xquIuMIKYEQRGgBkBZgSYEQAjwIwAMgKcEcS5SxXY1h7BZt+lbGy
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
js/ai/src/testing/model-tester.ts:47
url: 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSoVETOIOGSoulgQFXHUKhShQqgVWnUwufRDaNKQtLg4Cq4FBz8Wqw4uzro6uAqC4AeIs4OToouU+L+k0CL
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
go/plugins/googlegenai/README.md:76
APIKey: "your-express-mode-api-key", // Optional: defaults to VERTEX_API_KEY, GOOGLE_API_KEY, or GOOGLE_GENAI_API_KEY
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
js/plugins/google-genai/tests/vertexai/gemini_test.ts:65
apiKey: 'test-express-api-key',
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
js/plugins/google-genai/tests/vertexai/index_test.ts:65
apiKey: 'test-express-api-key',
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
js/plugins/google-cloud/tests/logs_no_input_output_test.ts:51
private_key: '-----BEGIN PRIVATE KEY-----',
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
js/plugins/google-cloud/tests/logs_test.ts:54
private_key: '-----BEGIN PRIVATE KEY-----',
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
js/plugins/google-cloud/tests/metrics_test.ts:59
private_key: '-----BEGIN PRIVATE KEY-----',
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
js/plugins/google-cloud/tests/traces_test.ts:52
private_key: '-----BEGIN PRIVATE KEY-----',
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
removeTask
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierrc.yaml
.prettierrc.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
py/.pysentry.toml
.pysentry.toml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
.github/workflows/python-samples.yml:110
importlib.import_module(mod)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
.github/workflows/python-samples.yml:166
importlib.import_module(mod)
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
py/packages/genkit/tests/genkit/ai/model_ref_test.py:24
return getattr(importlib.import_module(module), name)
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
py/tests/floor_shim_guard_test.py:48
exec(compile(SHIM_SETUP.read_text(), str(SHIM_SETUP), 'exec'), {'__name__': '__main__'})  # noqa: S102
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/scripts/check-generated-go.sh:34
if ! gen_output=$(go run ../internal/cmd/jsonschemagen -outdir .. -config schemas.config ../../genkit-tools/genkit-schema.json ai 2>&1); then
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
.github/workflows/scripts/check-generated-go.sh:58
echo "::error::cd go/core && go run ../internal/cmd/jsonschemagen -outdir .. -config schemas.config ../../genkit-tools/genkit-schema.json ai"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
genkit-tools/cli/tests/commands/eval-flow_test.ts:18
import { evalFlow } from '../../src/commands/eval-flow';

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-09-18 · audit v0.4.0 · source sha 825559c40957 · full audit: observations/trust-audit/mcp-server/firebase__genkit.json · Report an issue or request a re-scan

Audit history

DateSourceVerdictGradeScoreChange
2026-09-18825559c40957BLOCKF28first audit

Alternatives

Other servers in the same categories, safer ones first.

Questions

What is the Genkit MCP server?

Open-source framework for building agentic apps in JavaScript, Go, Dart, and Python, built and used in production by Google

What tools does Genkit expose?

150 in total: 135 read-only, 14 that write, and 1 that can delete or overwrite (removeTask). Every one is listed on this page with its risk.

Is Genkit safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (28/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Genkit need?

It reads ANTHROPIC_API_KEY, CUSTOM_KEY, DB_PASSWORD, DEEPSEEK_API_KEY, DJANGO_SECRET_KEY, GEMINI_API_KEY, GOOGLE_API_KEY, GOOGLE_GENAI_API_KEY, OPENAI_API_KEY, PINECONE_API_KEY, VERTEX_API_KEY and XAI_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Genkit run?

It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as test_js_app at 1.0.0.

How current is this page?

The grade is for one exact copy of the source (825559c40957), read on 2026-09-18. The repository is watched and re-audited when it changes.

Provenance: OBSERVED · read 2026-09-18 · job trust-audit-2026-09-18