Frasma
Read-only Frasma MCP: profile, knowledge search, diagnostic handoff. No email.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen get_frasma_profile
- LOWen get_diagnostic_framework
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"frasma": {
"url": "https://www.frasma.org/api/mcp"
}
}
}Puntos de conexión remotos
https://www.frasma.org/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢get_frasma_profile(locale)
Returns the verified public profile, focus areas, sectors, commercial boundaries, and discovery URLs for Frasma.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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#"
}Esquema de salida
{
"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
}Comunidad
Evidencia