Atlas / MCP servers / the-ai-alliance / Gofannon

GofannonBLOCK

mcp/the-ai-alliance/gofannon

A web app for rapidly prototyping AI agents and the lightweight web UIs that wrap them—build flows, preview interactions, and share agent-driven experiences without lock-in.

Verdict
BLOCK
Grade
F
Trust score
56 /100
Exposed tools
4 4r · 0w · 0d
Transport
—
License
Apache-2.0
Stars
68
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://pypi.org/project/gofannon/) [](LICENSE) [](https://github.com/The-AI-Alliance/gofannon/issues)

Gofannon is a provider- and model-agnostic toolkit and web application for prototyping AI agents and the lightweight web UIs that wrap them. Subject matter experts compose tools, data sources, and decision paths through a guided interface, preview agent interactions in real time, and hand off working agent-driven experiences without committing to a single AI framework or model provider.

What you can do

  • Prototype agents quickly. Compose tools, data sources, and decision paths through a guided interface, and iterate with real-time feedback.
  • Design lightweight web UIs. Pair agents with forms, chat surfaces, and dashboards to validate user journeys; export or embed prototypes to share with stakeholders.
  • Stay flexible. Gofannon supports multiple model providers (OpenAI, Anthropic, Gemini, and others via LiteLLM) and is designed to keep your work portable across them.

Quickstart

git clone https://github.com/The-AI-Alliance/gofannon.git
cd gofannon/webapp/infra/docker
docker-compose up --build

See the quickstart guide for details, including required environment configuration.

Documentation

Full documentation lives in docs/ and is published at . Highlights:

  • Quickstart
  • Developer quickstart
  • API reference
  • LLM provider configuration
  • [Testing](docs/testing
Read from source at commit f12f7046d4d7OBSERVED · 2026-10-07
Advertisement
02

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 website --env ADMIN_PANEL_PASSWORD=${ADMIN_PANEL_PASSWORD} --env AUTH_CONFIG_PATH=${AUTH_CONFIG_PATH} --env AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} --env AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "website": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ADMIN_PANEL_PASSWORD": "${ADMIN_PANEL_PASSWORD}",
        "AUTH_CONFIG_PATH": "${AUTH_CONFIG_PATH}",
        "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}",
        "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}"
      }
    }
  }
}
03

Exposed tools (4)

4 read · 0 write · 0 destructive.

ToolRiskDescription
AnthropicreadClaude models
OpenAIreadGPT-4, GPT-3.5, and other OpenAI models
OpenRouterreadUnified access to xAI Grok, DeepSeek, Qwen, Llama, and many other models
PerplexityreadPerplexity AI models
04

Trust audit

BLOCKgrade F · trust 56/100 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)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

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

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
webapp/packages/api/user-service/dependencies.py:382
exec(code_obj, exec_globals, local_scope)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
webapp/packages/api/user-service/config/routes_config.py:23
module = importlib.import_module(module_path)
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
webapp/packages/api/user-service/config/routes_config.py:38
module = importlib.import_module(override_module)
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
webapp/packages/api/user-service/tests/unit/test_log_redaction.py:249
"-----BEGIN PRIVATE KEY-----",
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
webapp/packages/api/user-service/tests/unit/test_log_redaction.py:250
"-----BEGIN RSA PRIVATE KEY-----",
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
webapp/packages/api/user-service/tests/unit/test_log_redaction.py:251
"-----BEGIN EC PRIVATE KEY-----",
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
webapp/packages/api/user-service/tests/unit/test_log_redaction.py:252
"-----BEGIN OPENSSH PRIVATE KEY-----",
LOWInventory / provenance · inv.hidden_file · CWE-1104
.dev-auth.yaml
.dev-auth.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
webapp/.firebaserc
.firebaserc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
webapp/packages/api/user-service/.coveragerc
.coveragerc
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
webapp/packages/webui/.env.firebase.example
.env.firebase.example
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
website/static/.nojekyll
.nojekyll
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
webapp/infra/docker/docker-compose.yml:5
context: ../../
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
webapp/infra/docker/docker-compose.yml:19
context: ../../packages/api/user-service
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
webapp/infra/docker/docker-compose.yml:20
dockerfile: ../../../infra/docker/Dockerfile.api
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
webapp/infra/docker/docker-compose.yml:22
- ../../packages/api/user-service:/app
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
webapp/infra/docker/docker-compose.yml:28
- ../../../.dev-auth.yaml:/auth-config/auth.yaml:ro
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/quickstart/README.md:29
http://127.0.0.1:3000/
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
webapp/package.json
firebase, react-split-pane, @playwright/test, pnpm
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
webapp/packages/api/user-service/requirements.txt
fastapi, uvicorn, boto3, python-dotenv, litellm, fastmcp, google-auth, pytest
Why it matters. 24 requirement(s) not pinned with ==
Fix. pin exact versions
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
webapp/packages/webui/package.json
@emotion/react, @emotion/styled, @mui/icons-material, @mui/material, axios, prop-types, react, react-dom
Why it matters. 26 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
website/package.json
@mdx-js/react, clsx, prism-react-renderer, react, react-dom, typescript
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
docs/database-service/implementations/firestore.md:175
// Allow service account full access (for backend)
LOWPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
docs/database-service/security.md:133
// Service account has full access
LOWPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
docs/database-service/troubleshooting.md:217
# Attach DynamoDB full access policy

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha f12f7046d4d7full audit observations/trust-audit/mcp-server/the-ai-alliance__gofannon.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-07f12f7046d4d7BLOCKF56first audit
06

Questions

What is the Gofannon MCP server?

A web app for rapidly prototyping AI agents and the lightweight web UIs that wrap them—build flows, preview interactions, and share agent-driven experiences without lock-in.

What tools does Gofannon expose?

4 in total: 4 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Gofannon safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (56/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does Gofannon need?

It reads ADMIN_PANEL_PASSWORD, AUTH_CONFIG_PATH, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, COUCHDB_PASSWORD and GITHUB_TOKEN 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 current is this page?

The grade is for one exact copy of the source (f12f7046d4d7), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement