my website
- ✓Actively maintained (<30d)
- ✓Mature repo (>1y old)
- ✓Documented (README)
- !No standard license detected
git clone https://github.com/francemazzi/frasmaResumen de Tools
[](https://smithery.ai/servers/francemazzi/frasma)
[Frasma on Smithery](https://smithery.ai/servers/francemazzi/frasma)
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
## Process brief (quote request)
The landing form and the chat widget both submit a **process brief** to `POST /api/request-process-assessment`. Francesco uses that brief to prepare a quote.
Fields: name, work email, optional company and role, process (required), optional current tools and volume.
When `MONGODB_URI` is set, the same endpoint upserts `users`, inserts `leads`, and logs `project_brief_submitted`.
### Required environment variables
Create a `.env.local` file in the project root with:
```bash
# Destination email (defaults to francemazzi@gmail.com)
MEETING_NOTIFICATION_EMAIL=francemazzi@gmail.com
# Sender identity (defaults to SMTP_USER if using SMTP)
MEETING_FROM_EMAIL=francemazzi@gmail.com
# Sender display name (defaults to "Frasma")
MEETING_FROM_NAME=Frasma
# --- Option A (recommended): Gmail SMTP via App Password ---
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=francemazzi@gmail.com
SMTP_PASS=your_gmail_app_password
# --- Option B: Resend ---
# RESEND_API_KEY=your_resend_api_key
```
Notes:
- In production you should set these variables in your hosting provider (e.g. Vercel).
- If neither SMTP nor Resend is configured, the API returns an error and the popup shows it to the user.
## Diagnostic chat agent
The website chat is a process-diagnostic assistant. It uses the bilingual, versioned knowledge base in `lib/knowledge/` to:
- identify operational bottlenecks;
- collect workflow, systems, volumes, baseline metrics, data, and constraints;
- map the need to Frasma capabilities;
- prepare an editable process brief;
- submit that brief to `POST /api/request-process-assessment` only after explicit user review.
If the assistant times out, the widget shows the same process brief form, prefilled from the conversation history (no extra LLM call).
Each browser session stores a `conversationId` in `localStorage`. Messages are persisted server-side in MongoDB Atlas through the official Node.js driver. On reopen, the widget restores the conversation via `GET /api/conversations/:id`. If MongoDB is not configured, the chat keeps working in stateless mode.
Do not add prices, guaranteed savings, customer secrets, credentials, or personal data about third parties to the knowledge base or diagnostic examples.
Required OpenAI environment variable (chat agent + voice dictation on the process assessment form):
```bash
OPENAI_API_KEY=your_openai_api_key
# Optional; defaults to gpt-4o-mini
OPENAI_CHAT_MODEL=gpt-4o-mini
# Optional; defaults to whisper-1 (process assessment voice dictation)
OPENAI_WHISPER_MODEL=whisper-1
```
### Chat persistence (MongoDB Atlas)
Persistence is optional but recommended in production. When configured, the API stores:
- conversation metadata (`lang`, `timezone`, `pagePath`, conversion flags);
- user and assistant messages;
- conversion events from the process brief (`project_brief_submitted`).
Setup:
1. Create a free **M0** cluster on [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) (recommended region: Frankfurt or Ireland).
2. Create a database user with read/write access.
3. In Network Access, allow `0.0.0.0/0` (required for Vercel serverless).
4. Copy the connection string and set these environment variables locally and on Vercel:
```bash
MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/frasma_chat?retryWrites=true&w=majority
CHAT_RETENTION_DAYS=90
```
Indexes and a TTL policy on `conversations.expiresAt` are created automatically on first use.
Without `MONGODB_URI`, `POST /api/chat` and the form APIs continue to work; persistence calls are skipped silently.
Verify the connection:
```bash
npm run check:mongodb
curl http://localhost:3000/api/status
```
Expected when configured correctly:
```json
{
"persistence": { "configured": true, "connected": true }
}
```
A successful chat response also includes `conversationId`.
### MongoDB troubleshooting
1. **Network Access** on Atlas must include `0.0.0.0/0` for Vercel serverless.
2. The URI must include the database name: `...mongodb.net/frasma_chat?...`
3. If you reset the Atlas user password, update both `.env.local` and Vercel, then redeploy.
4. URL-encode special characters in the password (`@`, `#`, `%`, etc.).
5. After changing Vercel env vars, trigger a new deployment; env changes are not applied to existing deployments automatically.
## AI discovery and public MCP
Public discovery surfaces for agents and humans:
| Resource | URL |
|----------|-----|
| Agents hub | https://www.frasma.org/for-agents |
| Services hub | https://www.frasma.org/servizi |
| Case studies | https://www.frasma.org/casi |
| llms.txt | https://www.frasma.org/llms.txt |
| llms-it.txt | https://www.frasma.org/llms-it.txt |
| Home markdown | `GET /` with `Accept: text/markdown` |
| OpenAPI | https://www.frasma.org/openapi.json |
| API catalog | https://www.frasma.org/.well-known/api-catalog |
| Agent skills | https://www.frasma.org/.well-known/agent-skills/index.json |
| MCP (Streamable HTTP) | https://www.frasma.org/api/mcp |
### MCP tools (read-only + handoff)
- `get_frasma_profile`
- `search_frasma_knowledge`
- `get_diagnostic_framework`
- `prepare_diagnostic_summary` — validates a diagnosis and returns handoff URLs; **never sends email**
- `prepare_project_brief` — validates the process brief used for a quote; **never sends email**
Example Cursor / Claude Desktop remote config:
```json
{
"mcpServers": {
"frasma": {
"url": "https://www.frasma.org/api/mcp"
}
}
}
```
For stdio-only clients:
```json
{
"mcpServers": {
"frasma": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://www.frasma.org/api/mcp"]
}
}
}
```
### Directory listing (after production deploy)
1. Confirm `/for-agents`, `/servizi`, `/llms.txt`, `/llms-it.txt`, and `/api/mcp` respond in production.
2. Smoke: `curl -H 'Accept: text/markdown' https://www.frasma.org/` and `https://www.frasma.org/servizi/ddt-erp`, plus an MCP `initialize` + `tools/list` against `/api/mcp`.
3. Submit the server to relevant MCP directories with the short description from `/for-agents` (mention the services hub).
4. Keep the agent-skills digest in sync when `SKILL.md` changes (`shasum -a 256`).
Quality checks:
```bash
npm run lint
npm test
npm run build
```
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
Lo que la gente pregunta sobre frasma
¿Qué es francemazzi/frasma?
+
francemazzi/frasma es tools para el ecosistema de Claude AI. my website Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-08-25.
¿Cómo se instala frasma?
+
Puedes instalar frasma clonando el repositorio (https://github.com/francemazzi/frasma) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar francemazzi/frasma?
+
Nuestro agente de seguridad ha analizado francemazzi/frasma y le ha asignado un Trust Score de 62/100 (tier: OK). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene francemazzi/frasma?
+
francemazzi/frasma es mantenido por francemazzi. La última actividad registrada en GitHub es del 2026-08-25, con 0 issues abiertos.
¿Hay alternativas a frasma?
+
Sí. En ClaudeWave puedes explorar tools similares en /categories/tools, ordenados por popularidad o actividad reciente.
Despliega frasma en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/francemazzi-frasma)<a href="https://claudewave.com/repo/francemazzi-frasma"><img src="https://claudewave.com/api/badge/francemazzi-frasma" alt="Featured on ClaudeWave: francemazzi/frasma" width="320" height="64" /></a>Más Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI skill that provides design intelligence for building professional UI/UX across multiple platforms.
🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
The best-benchmarked open-source AI memory system. And it's free.
The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]