Frasma MCP
Read-only Frasma MCP server enabling agents to search company knowledge, view profiles, and initiate diagnostic handoffs for process automation. It supports human-validated workflows for SMEs in manufacturing, food, and field services without email access.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://www.frasma.org/api/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search company knowledge base
- View agent profile information
- Initiate diagnostic process handoff
- Access operational AI datasets
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- frasma 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
5 advertised
get_frasma_profile — Get Frasma profile
Returns the verified public profile, focus areas, sectors, commercial boundaries, and discovery URLs for Frasma.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"it",
"en"
],
"type": "string",
"description": "Response language: it or en. Defaults to it."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"founder",
"location",
"languages",
"kind",
"description",
"focus",
"sectors",
"commercialLimits",
"discovery"
],
"properties": {
"kind": {
"type": "string"
},
"name": {
"type": "string",
"const": "Frasma"
},
"focus": {
"type": "array",
"items": {
"type": "string"
}
},
"founder": {
"type": "string",
"const": "Francesco Saverio Mazzi"
},
"sectors": {
"type": "array",
"items": {
"type": "string"
}
},
"location": {
"type": "string",
"const": "Mantova, Italy"
},
"discovery": {
"type": "object",
"required": [
"forAgents",
"llmsTxt",
"mcp",
"apiCatalog",
"openapi",
"agentSkills",
"status",
"chat"
],
"properties": {
"mcp": {
"type": "string"
},
"chat": {
"type": "string"
},
"status": {
"type": "string"
},
"llmsTxt": {
"type": "string"
},
"openapi": {
"type": "string"
},
"forAgents": {
"type": "string"
},
"apiCatalog": {
"type": "string"
},
"agentSkills": {
"type": "string"
}
},
"additionalProperties": false
},
"languages": {
"type": "array",
"items": [
{
"type": "string",
"const": "it"
},
{
"type": "string",
"const": "en"
}
]
},
"description": {
"type": "string"
},
"commercialLimits": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_frasma_knowledge — Search Frasma knowledge
Searches verified Frasma services, sectors, case studies, methodology, fit criteria, and commercial boundaries. Use before making factual claims.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Search query for verified Frasma knowledge, e.g. DDT ERP or HACCP procedures."
},
"locale": {
"enum": [
"it",
"en"
],
"type": "string",
"description": "Response language: it or en. Defaults to it."
},
"pagePath": {
"type": "string",
"pattern": "^\\/.*",
"description": "Optional canonical site path to scope results, e.g. /servizi/ddt-erp."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"category",
"title",
"summary",
"details",
"score"
],
"properties": {
"id": {
"type": "string"
},
"score": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"title": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "string"
}
},
"summary": {
"type": "string"
},
"category": {
"enum": [
"profile",
"service",
"case-study",
"sector",
"methodology",
"fit",
"commercial-limit"
],
"type": "string"
}
},
"additionalProperties": false
},
"description": "Ranked knowledge matches for the query."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_diagnostic_framework — Get diagnostic framework
Returns the diagnostic method, evidence to collect, fit criteria, and commercial limits.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"it",
"en"
],
"type": "string",
"description": "Response language: it or en. Defaults to it."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"introduction",
"steps",
"fitCriteria",
"poorFitCriteria",
"commercialLimits"
],
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"description",
"evidence"
],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
},
"title": {
"type": "string"
},
"fitCriteria": {
"type": "array",
"items": {
"type": "string"
}
},
"introduction": {
"type": "string"
},
"poorFitCriteria": {
"type": "array",
"items": {
"type": "string"
}
},
"commercialLimits": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}prepare_diagnostic_summary — Prepare 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"clientName",
"clientEmail",
"sector",
"process",
"currentWorkflow",
"bottlenecks",
"currentSystems",
"volumesAndFrequency",
"baselineMetrics",
"dataAvailable",
"constraints",
"desiredOutcomes",
"needCategories",
"opportunities",
"recommendations",
"openQuestions",
"nextSteps",
"language"
],
"properties": {
"sector": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "Business sector, e.g. manufacturing or food quality."
},
"process": {
"type": "string",
"maxLength": 240,
"minLength": 1,
"description": "Short name of the process under diagnosis, e.g. delivery notes into ERP."
},
"honeypot": {
"type": "string",
"maxLength": 0,
"description": "Anti-spam trap. Must be empty or omitted."
},
"language": {
"enum": [
"it",
"en"
],
"type": "string",
"description": "Language of the diagnostic summary: it or en."
},
"nextSteps": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Agreed next steps after reviewing this summary."
},
"clientName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Client full name."
},
"bottlenecks": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Observed bottlenecks, one item per string."
},
"clientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Client work email."
},
"constraints": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Hard constraints, e.g. human validation before ERP import."
},
"clientCompany": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "Client company name, if known."
},
"dataAvailable": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Data that can be shared for a prototype, preferably anonymized samples."
},
"openQuestions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"description": "Open questions still to confirm with the client."
},
"opportunities": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Concrete opportunities that follow from the evidence."
},
"currentSystems": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Systems already in use, e.g. email, PDF, Mago Zucchetti."
},
"needCategories": {
"type": "array",
"items": {
"enum": [
"document_erp",
"workflow",
"ticketing",
"dataset_benchmark",
"ai_optimization",
"company_wiki",
"ai_presence"
],
"type": "string",
"description": "Frasma need category: document_erp, workflow, ticketing, dataset_benchmark, ai_optimization, company_wiki, or ai_presence."
},
"maxItems": 7,
"minItems": 1,
"description": "One or more Frasma need categories that fit the diagnosis."
},
"baselineMetrics": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Baseline metrics before any Frasma work, e.g. minutes per document."
},
"currentWorkflow": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "How the process is done today, including people, tools, and handoffs."
},
"desiredOutcomes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Desired outcomes without invented savings or guarantees."
},
"recommendations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Recommended next steps for a limited prototype or discovery."
},
"volumesAndFrequency": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Volumes and frequency, e.g. about 40 DDT per day."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ok",
"summary",
"completeness",
"handoff"
],
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"handoff": {
"type": "object",
"required": [
"chatUrl",
"emailEndpoint",
"instructions"
],
"properties": {
"chatUrl": {
"type": "string"
},
"instructions": {
"type": "string"
},
"emailEndpoint": {
"type": "string"
}
},
"additionalProperties": false
},
"summary": {
"type": "object",
"required": [
"clientName",
"clientEmail",
"sector",
"process",
"currentWorkflow",
"bottlenecks",
"currentSystems",
"volumesAndFrequency",
"baselineMetrics",
"dataAvailable",
"constraints",
"desiredOutcomes",
"needCategories",
"opportunities",
"recommendations",
"openQuestions",
"nextSteps",
"language"
],
"properties": {
"sector": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "Business sector, e.g. manufacturing or food quality."
},
"process": {
"type": "string",
"maxLength": 240,
"minLength": 1,
"description": "Short name of the process under diagnosis, e.g. delivery notes into ERP."
},
"honeypot": {
"type": "string",
"maxLength": 0,
"description": "Anti-spam trap. Must be empty or omitted."
},
"language": {
"enum": [
"it",
"en"
],
"type": "string",
"description": "Language of the diagnostic summary: it or en."
},
"nextSteps": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Agreed next steps after reviewing this summary."
},
"clientName": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Client full name."
},
"bottlenecks": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Observed bottlenecks, one item per string."
},
"clientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Client work email."
},
"constraints": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Hard constraints, e.g. human validation before ERP import."
},
"clientCompany": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "Client company name, if known."
},
"dataAvailable": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Data that can be shared for a prototype, preferably anonymized samples."
},
"openQuestions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"description": "Open questions still to confirm with the client."
},
"opportunities": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Concrete opportunities that follow from the evidence."
},
"currentSystems": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Systems already in use, e.g. email, PDF, Mago Zucchetti."
},
"needCategories": {
"type": "array",
"items": {
"enum": [
"document_erp",
"workflow",
"ticketing",
"dataset_benchmark",
"ai_optimization",
"company_wiki",
"ai_presence"
],
"type": "string",
"description": "Frasma need category: document_erp, workflow, ticketing, dataset_benchmark, ai_optimization, company_wiki, or ai_presence."
},
"maxItems": 7,
"minItems": 1,
"description": "One or more Frasma need categories that fit the diagnosis."
},
"baselineMetrics": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Baseline metrics before any Frasma work, e.g. minutes per document."
},
"currentWorkflow": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "How the process is done today, including people, tools, and handoffs."
},
"desiredOutcomes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Desired outcomes without invented savings or guarantees."
},
"recommendations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 800,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Recommended next steps for a limited prototype or discovery."
},
"volumesAndFrequency": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Volumes and frequency, e.g. about 40 DDT per day."
}
},
"additionalProperties": false
},
"completeness": {
"type": "object",
"required": [
"missingFields",
"score"
],
"properties": {
"score": {
"type": "number"
},
"missingFields": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}prepare_project_brief — Prepare 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"clientEmail",
"process"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Client full name."
},
"role": {
"type": "string",
"maxLength": 120,
"description": "Client role, if known."
},
"volume": {
"type": "string",
"maxLength": 500,
"description": "Volumes or frequency, e.g. 80 documents per week."
},
"company": {
"type": "string",
"maxLength": 120,
"description": "Client company name, if known."
},
"process": {
"type": "string",
"maxLength": 2000,
"minLength": 20,
"description": "Process to evaluate, at least 20 characters: trigger, work today, and desired outcome."
},
"systems": {
"type": "string",
"maxLength": 500,
"description": "Systems already in use, e.g. Outlook and ERP."
},
"clientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Client work email."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ok",
"brief",
"handoff"
],
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"brief": {
"type": "object",
"required": [
"name",
"clientEmail",
"process"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Client full name."
},
"role": {
"type": "string",
"maxLength": 120,
"description": "Client role, if known."
},
"volume": {
"type": "string",
"maxLength": 500,
"description": "Volumes or frequency, e.g. 80 documents per week."
},
"company": {
"type": "string",
"maxLength": 120,
"description": "Client company name, if known."
},
"process": {
"type": "string",
"maxLength": 2000,
"minLength": 20,
"description": "Process to evaluate, at least 20 characters: trigger, work today, and desired outcome."
},
"systems": {
"type": "string",
"maxLength": 500,
"description": "Systems already in use, e.g. Outlook and ERP."
},
"clientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Client work email."
}
},
"additionalProperties": false
},
"handoff": {
"type": "object",
"required": [
"chatUrl",
"emailEndpoint",
"instructions"
],
"properties": {
"chatUrl": {
"type": "string"
},
"instructions": {
"type": "string"
},
"emailEndpoint": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 515 ms
- 95th percentile latency
- 515 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 515 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http frasma-mcp https://www.frasma.org/api/mcpCodex
codex mcp add frasma-mcp --url https://www.frasma.org/api/mcpCursor
{
"mcpServers": {
"frasma-mcp": {
"url": "https://www.frasma.org/api/mcp"
}
}
}Cline
{
"mcpServers": {
"frasma-mcp": {
"type": "streamableHttp",
"url": "https://www.frasma.org/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"frasma-mcp": {
"type": "http",
"url": "https://www.frasma.org/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http frasma-mcp https://www.frasma.org/api/mcpClaude Desktop
https://www.frasma.org/api/mcpWindsurf
{
"mcpServers": {
"frasma-mcp": {
"serverUrl": "https://www.frasma.org/api/mcp"
}
}
}Let your agent find its tools
Find servers like Frasma MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.