{"id":"portel-dev-photon","name":"photon","homepage":null,"repo_url":"https://github.com/portel-dev/photon","category":"devtools","subcategories":[],"tags":["mcp","typescript","cli","web-ui","beam","code-generation","single-file","developer-tools","workflow-automation"],"what_it_does":"Photon turns a single TypeScript class (\"photon\") into multiple runnable interfaces: an auto-generated web UI (Beam) for humans, a CLI tool, and an MCP server for AI agents, deriving tool schemas and validation from TypeScript method signatures, types, and JSDoc/comments.","use_cases":["Expose business logic to AI agents via MCP without hand-writing schemas","Generate human-friendly forms/controls for tool methods automatically","Create automation/ops CLIs from the same underlying TypeScript code","Build interactive workflows that coordinate humans and AI using locks/events","Provide webhooks/HTTP endpoints from annotated methods (as described)","Wrap external command-line tools with typed, validated capabilities"],"not_for":["Highly customized UI/UX where you must fully control frontend behavior","Services requiring a centralized hosted SaaS deployment (Photon appears developer/local-first)","Use-cases needing a strict, documented REST/GraphQL contract for third-party HTTP clients (documentation not provided here)","Environments where you cannot run Node.js/Bun toolchains at build/run time"],"best_when":"You want one TypeScript source of truth for typed capabilities that should be callable from CLI, a generated web UI, and AI clients through MCP.","avoid_when":"You need guaranteed, production-grade security controls out-of-the-box (authn/authz, transport security configuration, data handling) with explicit documentation for those controls.","alternatives":["modelcontextprotocol SDKs with manual tool/schema definitions","OpenAPI-first approaches (Fastify/Nest + OpenAPI + codegen) for REST APIs","CLI generators from OpenAPI/JSON schema (or vice versa) for consistent validation","Framework-specific app generators (e.g., admin-form generators) if you only need web UIs"],"af_score":51.2,"security_score":46.8,"reliability_score":31.2,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:38:06.347241+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":true,"sdk_languages":["TypeScript/JavaScript"],"openapi_spec_url":null,"webhooks":true},"auth":{"methods":[],"oauth":false,"scopes":false,"notes":"README claims built-in OAuth 2.0 flows for Google/GitHub/Microsoft, but this evaluation cannot verify endpoints, required parameters, or scope granularity because implementation/auth details are not provided in the supplied content."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Photon is described as free and open source (MIT). No hosted pricing details are provided here."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":51.2,"security_score":46.8,"reliability_score":31.2,"mcp_server_quality":78.0,"documentation_accuracy":70.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":45.0,"rate_limit_clarity":5.0,"tls_enforcement":40.0,"auth_strength":50.0,"scope_granularity":35.0,"dependency_hygiene":55.0,"secret_handling":55.0,"security_notes":"README describes environment variable mapping for constructor parameters (e.g., WEATHER_API_KEY) and claims built-in OAuth 2.0 flows, but the provided content does not document transport security defaults, authz enforcement, scope model, secure logging behavior, or secret handling guarantees for Beam/MCP/Webhooks. Dependency list exists in manifest but CVE status is not known from the provided data.","uptime_documented":0.0,"version_stability":55.0,"breaking_changes_history":40.0,"error_recovery":30.0,"idempotency_support":"false","idempotency_notes":null,"pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["MCP invocation depends on the MCP host/client properly handling the server process/command and arguments.","Generated schemas/validation come from TypeScript types/JSDoc; insufficient typing/comments can reduce tool quality for agents.","Long-running methods invoked by agents may require explicit locking/scheduling design; only high-level locking behavior is described, not operational guidance."]}}