SpinGras

EU AI Act Article 4 (AI literacy) readiness check and intro booking with SpinGras, Amsterdam.

Should I use this

Quality & Safety

A
Description quality
88%
Schema completeness
73%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'list_services' description lacks action verbin list_services

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,057Tokens (tool definitions)
~1.9 KBTypical response size
Moderate attention impact (0.83% of 128k context)

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": {
    "mcp": {
      "url": "https://mcp.spingras.io/mcp"
    }
  }
}

Remote endpoints

https://mcp.spingras.io/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_services

Company facts and the four ways to work with SpinGras: workshop, 90-day rollout, keynote, retainer.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢assess_article4_readiness(usesAi, staffUsingAi, hasAiUsePolicy, trainingDelivered, trainingRecorded, ...)

Checks an organisation's AI literacy measures against Article 4 of the EU AI Act and returns prioritised gaps with sources. Deterministic, not legal advice.

Input Schema

{
  "type": "object",
  "properties": {
    "usesAi": {
      "type": "boolean",
      "description": "Does anyone in the organisation use AI tools (e.g. ChatGPT, Copilot) or AI systems for work?"
    },
    "staffUsingAi": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000,
      "description": "Approximate number of staff using AI for work"
    },
    "hasAiUsePolicy": {
      "type": "boolean",
      "description": "Is there written guidance on which AI tools may be used and for what?"
    },
    "trainingDelivered": {
      "type": "boolean",
      "description": "Have staff who use AI received any AI literacy training or guidance?"
    },
    "trainingRecorded": {
      "type": "boolean",
      "description": "Is that training documented (who, when, what)?"
    },
    "trainingRoleSpecific": {
      "type": "boolean",
      "description": "Is training matched to roles and the AI systems each role uses?"
    },
    "sensitiveUseCases": {
      "type": "boolean",
      "description": "Is AI used for decisions about people (hiring, credit, customers' eligibility) or with sensitive data?"
    }
  },
  "required": [
    "usesAi",
    "staffUsingAi",
    "hasAiUsePolicy",
    "trainingDelivered",
    "trainingRecorded",
    "trainingRoleSpecific",
    "sensitiveUseCases"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_intro_slots(from, days, timeZone)

Returns open 30-minute intro call slots with SpinGras, grouped by date.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "First date to check, YYYY-MM-DD. Defaults to today.",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "days": {
      "default": 7,
      "type": "integer",
      "minimum": 1,
      "maximum": 14
    },
    "timeZone": {
      "default": "Europe/Amsterdam",
      "description": "IANA time zone for returned times",
      "type": "string",
      "maxLength": 64,
      "pattern": "^[A-Za-z_]+(\\/[A-Za-z0-9_+-]+){0,2}$|^UTC$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢request_intro(name, email, company, topic, date)

Builds a prefilled booking link for a 30-minute intro call. Does not book anything: give the link to the user to confirm a time themselves.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "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-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "company": {
      "type": "string",
      "maxLength": 100
    },
    "topic": {
      "description": "What the user wants to discuss",
      "type": "string",
      "maxLength": 500
    },
    "date": {
      "description": "Preferred date, YYYY-MM-DD",
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools