get_frasma_profile
Get Frasma profile
Returns the verified public profile, focus areas, sectors, commercial boundaries, and discovery URLs for Frasma.
locale
io.github.francemazziPublished by GitHub account francemazziv1.0.0Updated Oct 24, 2026
Read-only Frasma MCP: profile, knowledge search, diagnostic handoff. No email.
Read-only Frasma MCP server that lets an assistant look up a consultancy's verified profile, services and diagnostic method, and prepare handoff briefs.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.francemazzi%2Ffrasma/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"frasma": {
"type": "http",
"url": "https://www.frasma.org/api/mcp"
}
}
}This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
Open 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.
The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.
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.
Create a .env.local file in the project root with:
Notes:
The website chat is a process-diagnostic assistant. It uses the bilingual, versioned knowledge base in lib/knowledge/ 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):
Persistence is optional but recommended in production. When configured, the API stores:
lang, timezone, pagePath, conversion flags);project_brief_submitted).Setup:
0.0.0.0/0 (required for Vercel serverless).Indexes and a TTL policy on expiresAt are created automatically on first use for conversations, messages, events, leads and users. Every contact (registration, message, process brief) extends the deadline of the conversation and of everything the visitor owns, so data expires CHAT_RETENTION_DAYS after the last contact.
Databases created before this policy have documents without expiresAt, which a TTL index never deletes. Backfill them once (idempotent, --dry-run prints counts only):
Without MONGODB_URI, POST /api/chat and the form APIs continue to work; persistence calls are skipped silently.
Verify the connection:
Expected when configured correctly:
A successful chat response also includes conversationId.
0.0.0.0/0 for Vercel serverless....mongodb.net/frasma_chat?....env.local and Vercel, then redeploy.@, #, %, etc.).Public discovery surfaces for agents and humans:
get_frasma_profilesearch_frasma_knowledgeget_diagnostic_frameworkprepare_diagnostic_summary — validates a diagnosis and returns handoff URLs; never sends emailprepare_project_brief — validates the process brief used for a quote; never sends emailExample Cursor / Claude Desktop remote config:
For stdio-only clients:
/for-agents, /servizi, /llms.txt, /llms-it.txt, and /api/mcp respond in production.curl -H 'Accept: text/markdown' -H 'Accept-Language: it' https://www.frasma.org/servizi/ddt-erp (Italian DDT/Mago copy), plus an MCP initialize + tools/list against /api/mcp./for-agents (mention the services hub).SKILL.md changes (shasum -a 256).Quality checks:
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Source: README.md at commit dd2b7d2
Get Frasma profile
Returns the verified public profile, focus areas, sectors, commercial boundaries, and discovery URLs for Frasma.
localeSearch Frasma knowledge
Searches verified Frasma services, sectors, case studies, methodology, fit criteria, and commercial boundaries. Use before making factual claims.
queryrequiredlocalepagePathGet diagnostic framework
Returns the diagnostic method, evidence to collect, fit criteria, and commercial limits.
localePrepare diagnostic summary handoff
Validates a complete diagnostic summary and returns a handoff payload. Does not send email. Map the diagnosis to a process brief; the user must confirm before POST /api/request-process-assessment.
sectorrequiredprocessrequiredhoneypotlanguagerequirednextStepsrequiredclientNamerequiredbottlenecksrequiredclientEmailrequiredconstraintsrequiredclientCompanydataAvailablerequiredopenQuestionsrequired+8 morePrepare process brief handoff
Validates the process brief used for a quote (name, email, process, optional company/role/systems/volume). Does not send email. The user must confirm before POST /api/request-process-assessment.
namerequiredrolevolumecompanyprocessrequiredsystemsclientEmailrequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a license in the repository or the registry entry.
npm run dev# oryarn dev# Destination email (defaults to [email protected])[email protected]
# Sender identity (defaults to SMTP_USER if using SMTP)[email protected]
# Sender display name (defaults to "Frasma")MEETING_FROM_NAME=Frasma
# --- Option A (recommended): Gmail SMTP via App Password ---SMTP_HOST=smtp.gmail.comSMTP_PORT=465SMTP_SECURE=true[email protected]SMTP_PASS=your_gmail_app_password
# --- Option B: Resend ---# RESEND_API_KEY=your_resend_api_key
# Notion: inbound leads go to ricerca_clienti (Frasma view)# NOTION_TOKEN=ntn_your_integration_token# NOTION_LEADS_DATABASE_ID=32e90196-c414-80b3-9a53-c00ffe4019c9
# OpenAI Ads Measurement Pixel (ChatGPT Ads conversions). Public, inlined at build# time: set it in Vercel before the deploy that should carry the pixel.# NEXT_PUBLIC_OAI_PIXEL_ID=your_pixel_idOPENAI_API_KEY=your_openai_api_key
# Optional; defaults to gpt-4o-miniOPENAI_CHAT_MODEL=gpt-4o-mini
# Optional; defaults to whisper-1 (process assessment voice dictation)OPENAI_WHISPER_MODEL=whisper-1MONGODB_URI=mongodb+srv://user:[email protected]/frasma_chat?retryWrites=true&w=majority# Optional. Days from the last contact; defaults to 730 and is capped at 730# (24 months), the retention promised by the privacy policy.CHAT_RETENTION_DAYS=730node scripts/backfill-retention.mjs --dry-runnpm run backfill:retentionnpm run check:mongodbcurl http://localhost:3000/api/status{ "persistence": { "configured": true, "connected": true }}{ "mcpServers": { "frasma": { "url": "https://www.frasma.org/api/mcp" } }}{ "mcpServers": { "frasma": { "command": "npx", "args": ["-y", "mcp-remote", "https://www.frasma.org/api/mcp"] } }}npm run lintnpm testnpm run build