Frasma
Read-only Frasma MCP: profile, knowledge search, diagnostic handoff. No email.
Should I use this
Quality & Safety
Findings (2)
- LOWin get_frasma_profile
- LOWin get_diagnostic_framework
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"frasma": {
"url": "https://www.frasma.org/api/mcp"
}
}
}Remote endpoints
https://www.frasma.org/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢get_frasma_profile(locale)
Returns the verified public profile, focus areas, sectors, commercial boundaries, and discovery URLs for Frasma.
Input Schema
{
"type": "object",
"properties": {
"locale": {
"description": "Response language: it or en. Defaults to it.",
"type": "string",
"enum": [
"it",
"en"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "Frasma"
},
"founder": {
"type": "string",
"const": "Francesco Saverio Mazzi"
},
"location": {
"type": "string",
"const": "Mantova, Italy"
},
"languages": {
"type": "array",
"items": [
{
"type": "string",
"const": "it"
},
{
"type": "string",
"const": "en"
}
]
},
"kind": {
"type": "string"
},
"description": {
"type": "string"
},
"focus": {
"type": "array",
"items": {
"type": "string"
}
},
"sectors": {
"type": "array",
"items": {
"type": "string"
}
},
"commercialLimits": {
"type": "array",
"items": {
"type": "string"
}
},
"discovery": {
"type": "object",
"properties": {
"forAgents": {
"type": "string"
},
"llmsTxt": {
"type": "string"
},
"mcp": {
"type": "string"
},
"apiCatalog": {
"type": "string"
},
"openapi": {
"type": "string"
},
"agentSkills": {
"type": "string"
},
"status": {
"type": "string"
},
"chat": {
"type": "string"
}
},
"required": [
"forAgents",
"llmsTxt",
"mcp",
"apiCatalog",
"openapi",
"agentSkills",
"status",
"chat"
],
"additionalProperties": false
}
},
"required": [
"name",
"founder",
"location",
"languages",
"kind",
"description",
"focus",
"sectors",
"commercialLimits",
"discovery"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢search_frasma_knowledge(query, locale, pagePath)
Searches verified Frasma services, sectors, case studies, methodology, fit criteria, and commercial boundaries. Use before making factual claims.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search query for verified Frasma knowledge, e.g. DDT ERP or HACCP procedures."
},
"locale": {
"description": "Response language: it or en. Defaults to it.",
"type": "string",
"enum": [
"it",
"en"
]
},
"pagePath": {
"description": "Optional canonical site path to scope results, e.g. /servizi/ddt-erp.",
"type": "string",
"pattern": "^\\/.*"
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"profile",
"service",
"case-study",
"sector",
"methodology",
"fit",
"commercial-limit"
]
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"id",
"category",
"title",
"summary",
"details",
"score"
],
"additionalProperties": false
},
"description": "Ranked knowledge matches for the query."
}
},
"required": [
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_diagnostic_framework(locale)
Returns the diagnostic method, evidence to collect, fit criteria, and commercial limits.
Input Schema
{
"type": "object",
"properties": {
"locale": {
"description": "Response language: it or en. Defaults to it.",
"type": "string",
"enum": [
"it",
"en"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"introduction": {
"type": "string"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"title",
"description",
"evidence"
],
"additionalProperties": false
}
},
"fitCriteria": {
"type": "array",
"items": {
"type": "string"
}
},
"poorFitCriteria": {
"type": "array",
"items": {
"type": "string"
}
},
"commercialLimits": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"title",
"introduction",
"steps",
"fitCriteria",
"poorFitCriteria",
"commercialLimits"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢prepare_diagnostic_summary(clientName, clientEmail, clientCompany, sector, process, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"clientName": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Client full name."
},
"clientEmail": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Client work email."
},
"clientCompany": {
"description": "Client company name, if known.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"sector": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Business sector, e.g. manufacturing or food quality."
},
"process": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "Short name of the process under diagnosis, e.g. delivery notes into ERP."
},
"currentWorkflow": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "How the process is done today, including people, tools, and handoffs."
},
"bottlenecks": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Observed bottlenecks, one item per string."
},
"currentSystems": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Systems already in use, e.g. email, PDF, Mago Zucchetti."
},
"volumesAndFrequency": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Volumes and frequency, e.g. about 40 DDT per day."
},
"baselineMetrics": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Baseline metrics before any Frasma work, e.g. minutes per document."
},
"dataAvailable": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Data that can be shared for a prototype, preferably anonymized samples."
},
"constraints": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Hard constraints, e.g. human validation before ERP import."
},
"desiredOutcomes": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Desired outcomes without invented savings or guarantees."
},
"needCategories": {
"minItems": 1,
"maxItems": 7,
"type": "array",
"items": {
"type": "string",
"enum": [
"document_erp",
"workflow",
"ticketing",
"dataset_benchmark",
"ai_optimization",
"company_wiki",
"ai_presence"
],
"description": "Frasma need category: document_erp, workflow, ticketing, dataset_benchmark, ai_optimization, company_wiki, or ai_presence."
},
"description": "One or more Frasma need categories that fit the diagnosis."
},
"opportunities": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Concrete opportunities that follow from the evidence."
},
"recommendations": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Recommended next steps for a limited prototype or discovery."
},
"openQuestions": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Open questions still to confirm with the client."
},
"nextSteps": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Agreed next steps after reviewing this summary."
},
"language": {
"type": "string",
"enum": [
"it",
"en"
],
"description": "Language of the diagnostic summary: it or en."
},
"honeypot": {
"description": "Anti-spam trap. Must be empty or omitted.",
"type": "string",
"maxLength": 0
}
},
"required": [
"clientName",
"clientEmail",
"sector",
"process",
"currentWorkflow",
"bottlenecks",
"currentSystems",
"volumesAndFrequency",
"baselineMetrics",
"dataAvailable",
"constraints",
"desiredOutcomes",
"needCategories",
"opportunities",
"recommendations",
"openQuestions",
"nextSteps",
"language"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"summary": {
"type": "object",
"properties": {
"clientName": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Client full name."
},
"clientEmail": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Client work email."
},
"clientCompany": {
"description": "Client company name, if known.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"sector": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Business sector, e.g. manufacturing or food quality."
},
"process": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "Short name of the process under diagnosis, e.g. delivery notes into ERP."
},
"currentWorkflow": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "How the process is done today, including people, tools, and handoffs."
},
"bottlenecks": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Observed bottlenecks, one item per string."
},
"currentSystems": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Systems already in use, e.g. email, PDF, Mago Zucchetti."
},
"volumesAndFrequency": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Volumes and frequency, e.g. about 40 DDT per day."
},
"baselineMetrics": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Baseline metrics before any Frasma work, e.g. minutes per document."
},
"dataAvailable": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Data that can be shared for a prototype, preferably anonymized samples."
},
"constraints": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Hard constraints, e.g. human validation before ERP import."
},
"desiredOutcomes": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Desired outcomes without invented savings or guarantees."
},
"needCategories": {
"minItems": 1,
"maxItems": 7,
"type": "array",
"items": {
"type": "string",
"enum": [
"document_erp",
"workflow",
"ticketing",
"dataset_benchmark",
"ai_optimization",
"company_wiki",
"ai_presence"
],
"description": "Frasma need category: document_erp, workflow, ticketing, dataset_benchmark, ai_optimization, company_wiki, or ai_presence."
},
"description": "One or more Frasma need categories that fit the diagnosis."
},
"opportunities": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Concrete opportunities that follow from the evidence."
},
"recommendations": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Recommended next steps for a limited prototype or discovery."
},
"openQuestions": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Open questions still to confirm with the client."
},
"nextSteps": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"description": "Agreed next steps after reviewing this summary."
},
"language": {
"type": "string",
"enum": [
"it",
"en"
],
"description": "Language of the diagnostic summary: it or en."
},
"honeypot": {
"description": "Anti-spam trap. Must be empty or omitted.",
"type": "string",
"maxLength": 0
}
},
"required": [
"clientName",
"clientEmail",
"sector",
"process",
"currentWorkflow",
"bottlenecks",
"currentSystems",
"volumesAndFrequency",
"baselineMetrics",
"dataAvailable",
"constraints",
"desiredOutcomes",
"needCategories",
"opportunities",
"recommendations",
"openQuestions",
"nextSteps",
"language"
],
"additionalProperties": false
},
"completeness": {
"type": "object",
"properties": {
"missingFields": {
"type": "array",
"items": {
"type": "string"
}
},
"score": {
"type": "number"
}
},
"required": [
"missingFields",
"score"
],
"additionalProperties": false
},
"handoff": {
"type": "object",
"properties": {
"chatUrl": {
"type": "string"
},
"emailEndpoint": {
"type": "string"
},
"instructions": {
"type": "string"
}
},
"required": [
"chatUrl",
"emailEndpoint",
"instructions"
],
"additionalProperties": false
}
},
"required": [
"ok",
"summary",
"completeness",
"handoff"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢prepare_project_brief(name, clientEmail, company, role, process, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Client full name."
},
"clientEmail": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Client work email."
},
"company": {
"description": "Client company name, if known.",
"type": "string",
"maxLength": 120
},
"role": {
"description": "Client role, if known.",
"type": "string",
"maxLength": 120
},
"process": {
"type": "string",
"minLength": 20,
"maxLength": 2000,
"description": "Process to evaluate, at least 20 characters: trigger, work today, and desired outcome."
},
"systems": {
"description": "Systems already in use, e.g. Outlook and ERP.",
"type": "string",
"maxLength": 500
},
"volume": {
"description": "Volumes or frequency, e.g. 80 documents per week.",
"type": "string",
"maxLength": 500
}
},
"required": [
"name",
"clientEmail",
"process"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"brief": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Client full name."
},
"clientEmail": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Client work email."
},
"company": {
"description": "Client company name, if known.",
"type": "string",
"maxLength": 120
},
"role": {
"description": "Client role, if known.",
"type": "string",
"maxLength": 120
},
"process": {
"type": "string",
"minLength": 20,
"maxLength": 2000,
"description": "Process to evaluate, at least 20 characters: trigger, work today, and desired outcome."
},
"systems": {
"description": "Systems already in use, e.g. Outlook and ERP.",
"type": "string",
"maxLength": 500
},
"volume": {
"description": "Volumes or frequency, e.g. 80 documents per week.",
"type": "string",
"maxLength": 500
}
},
"required": [
"name",
"clientEmail",
"process"
],
"additionalProperties": false
},
"handoff": {
"type": "object",
"properties": {
"chatUrl": {
"type": "string"
},
"emailEndpoint": {
"type": "string"
},
"instructions": {
"type": "string"
}
},
"required": [
"chatUrl",
"emailEndpoint",
"instructions"
],
"additionalProperties": false
}
},
"required": [
"ok",
"brief",
"handoff"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence