Rafał Doniec: AI for companies

Services, price ranges and quote requests of Rafał Doniec, AI Solution Architect (Wrocław, Poland).

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
98%
Integridad del esquema
89%
Calidad de los nombres
93%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,672Tokens (definiciones de herramientas)
~3.2 KBTamaño de respuesta típico
Impacto significativo en la atención (2.09% del contexto de 128k)

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": {
    "services": {
      "url": "https://www.rafaldoniec.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://www.rafaldoniec.com/mcpstreamable-http
https://www.rafaldoniec.com/mcp/accountstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (8)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_services(language)

Rafał Doniec's services (AI automation, AI assistants, agent-ready companies, apps, strategy, prototypes, training, mentoring) with net price ranges in PLN and typical duration.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    }
  },
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "services": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "automatyzacja",
              "asystent",
              "agenci",
              "aplikacja",
              "strategia",
              "prototyp",
              "szkolenie",
              "mentoring"
            ]
          },
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "price_pln_net": {
            "type": "object",
            "properties": {
              "from": {
                "type": "number"
              },
              "to": {
                "type": "number"
              }
            },
            "required": [
              "from",
              "to"
            ]
          },
          "weeks": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "maxItems": 2,
            "description": "Shortest and longest duration in weeks."
          }
        },
        "required": [
          "id",
          "name",
          "summary",
          "price_pln_net",
          "weeks"
        ]
      }
    },
    "currency": {
      "type": "string"
    },
    "prices": {
      "type": "string"
    }
  },
  "required": [
    "services",
    "currency",
    "prices"
  ]
}
🟢match_service(description, language)

Reads a client's need in their own words and suggests the service and the answers it mentions. Rules in code, no language model; check the result with the client.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "maxLength": 500,
      "description": "The client's need in their own words (optional). Features it mentions, such as integrations, are priced in.",
      "minLength": 3
    },
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    }
  },
  "required": [
    "description"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "service": {
      "type": [
        "string",
        "null"
      ],
      "description": "null when no service matched."
    },
    "name": {
      "type": "string"
    },
    "answers": {
      "type": "object",
      "description": "Answers the description mentions, by question id (q1, q2, q3, when, budget).",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label"
        ]
      }
    }
  },
  "required": [
    "service"
  ]
}
🟢get_quote_questions(service, language)

The five questions of a service with their option ids, as the quote assistant on the site asks them. q1–q3 set the price; when and budget set the start and the follow-up.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "automatyzacja",
        "asystent",
        "agenci",
        "aplikacja",
        "strategia",
        "prototyp",
        "szkolenie",
        "mentoring"
      ],
      "description": "Service id from list_services."
    },
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    }
  },
  "required": [
    "service"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string"
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "label"
              ]
            }
          }
        },
        "required": [
          "id",
          "question",
          "options"
        ]
      }
    }
  },
  "required": [
    "service",
    "questions"
  ]
}
🟢estimate_price(service, answers, description, language)

Net price range in PLN, monthly upkeep, duration and what the price is made of, for a service and its answers, computed from the price list in code (the same as the quote assistant on the site). With all five answers it also returns the draft offer. Hosts with MCP Apps show the estimate as an offer card.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "automatyzacja",
        "asystent",
        "agenci",
        "aplikacja",
        "strategia",
        "prototyp",
        "szkolenie",
        "mentoring"
      ],
      "description": "Service id from list_services."
    },
    "answers": {
      "type": "object",
      "description": "Option ids chosen for the questions of the service (get_quote_questions): q1, q2, q3, when, budget.",
      "properties": {
        "q1": {
          "type": "string"
        },
        "q2": {
          "type": "string"
        },
        "q3": {
          "type": "string"
        },
        "when": {
          "type": "string"
        },
        "budget": {
          "type": "string"
        }
      },
      "required": [
        "q1",
        "q2",
        "q3"
      ],
      "additionalProperties": false
    },
    "description": {
      "type": "string",
      "maxLength": 500,
      "description": "The client's need in their own words (optional). Features it mentions, such as integrations, are priced in."
    },
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    }
  },
  "required": [
    "service",
    "answers"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string"
    },
    "service_name": {
      "type": "string"
    },
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ]
    },
    "price_pln_net": {
      "type": "object",
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        }
      },
      "required": [
        "from",
        "to"
      ]
    },
    "service_span_pln_net": {
      "type": "object",
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        }
      },
      "required": [
        "from",
        "to"
      ],
      "description": "Lowest and highest price of the service over all answers."
    },
    "upkeep_pln_net_per_month": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        }
      },
      "required": [
        "from",
        "to"
      ]
    },
    "weeks": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "minItems": 2,
      "maxItems": 2,
      "description": "Shortest and longest duration in weeks."
    },
    "breakdown": {
      "type": "array",
      "description": "Elements of the price list behind the estimate; the total is rounded.",
      "items": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string"
          },
          "price_pln_net": {
            "type": "object",
            "properties": {
              "from": {
                "type": "number"
              },
              "to": {
                "type": "number"
              }
            },
            "required": [
              "from",
              "to"
            ]
          },
          "upkeep_pln_net_per_month": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "from": {
                "type": "number"
              },
              "to": {
                "type": "number"
              }
            },
            "required": [
              "from",
              "to"
            ]
          }
        },
        "required": [
          "item",
          "price_pln_net",
          "upkeep_pln_net_per_month"
        ]
      }
    },
    "features_priced_in": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "draft_offer": {
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "service",
    "service_name",
    "language",
    "price_pln_net",
    "service_span_pln_net",
    "upkeep_pln_net_per_month",
    "weeks",
    "breakdown",
    "features_priced_in",
    "draft_offer",
    "note"
  ]
}
⚪request_quote(email, company, service, answers, description, ...)

Starts a quote request for the client: e-mails a 6-digit code to the client's address and returns a token. Ask the client for the code, then call confirm_quote with the same details. Nothing reaches Rafał until the code is confirmed.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The client's e-mail address. A 6-digit code is sent there."
    },
    "company": {
      "type": "string",
      "maxLength": 120,
      "description": "Company name (optional)."
    },
    "service": {
      "type": "string",
      "enum": [
        "automatyzacja",
        "asystent",
        "agenci",
        "aplikacja",
        "strategia",
        "prototyp",
        "szkolenie",
        "mentoring"
      ],
      "description": "Service id from list_services."
    },
    "answers": {
      "type": "object",
      "description": "Option ids chosen for the questions of the service (get_quote_questions): q1, q2, q3, when, budget.",
      "properties": {
        "q1": {
          "type": "string"
        },
        "q2": {
          "type": "string"
        },
        "q3": {
          "type": "string"
        },
        "when": {
          "type": "string"
        },
        "budget": {
          "type": "string"
        }
      },
      "required": [
        "q1",
        "q2",
        "q3",
        "when",
        "budget"
      ],
      "additionalProperties": false
    },
    "description": {
      "type": "string",
      "maxLength": 500,
      "description": "The client's need in their own words (optional). Features it mentions, such as integrations, are priced in."
    },
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    }
  },
  "required": [
    "email",
    "service",
    "answers"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Pass it to confirm_quote with the code."
    },
    "code_valid_minutes": {
      "type": "number"
    }
  },
  "required": [
    "token",
    "code_valid_minutes"
  ]
}
⚪confirm_quote(email, company, service, answers, description, ...)

Confirms the quote request with the 6-digit code the client received. Rafał gets the request and the client gets a copy of the draft offer by e-mail. One request per address a day.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The client's e-mail address. A 6-digit code is sent there."
    },
    "company": {
      "type": "string",
      "maxLength": 120,
      "description": "Company name (optional)."
    },
    "service": {
      "type": "string",
      "enum": [
        "automatyzacja",
        "asystent",
        "agenci",
        "aplikacja",
        "strategia",
        "prototyp",
        "szkolenie",
        "mentoring"
      ],
      "description": "Service id from list_services."
    },
    "answers": {
      "type": "object",
      "description": "Option ids chosen for the questions of the service (get_quote_questions): q1, q2, q3, when, budget.",
      "properties": {
        "q1": {
          "type": "string"
        },
        "q2": {
          "type": "string"
        },
        "q3": {
          "type": "string"
        },
        "when": {
          "type": "string"
        },
        "budget": {
          "type": "string"
        }
      },
      "required": [
        "q1",
        "q2",
        "q3",
        "when",
        "budget"
      ],
      "additionalProperties": false
    },
    "description": {
      "type": "string",
      "maxLength": 500,
      "description": "The client's need in their own words (optional). Features it mentions, such as integrations, are priced in."
    },
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    },
    "token": {
      "type": "string",
      "description": "Token returned by request_quote."
    },
    "code": {
      "type": "string",
      "pattern": "^\\d{6}$",
      "description": "The 6-digit code from the e-mail."
    }
  },
  "required": [
    "email",
    "service",
    "answers",
    "token",
    "code"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "sent": {
      "type": "boolean"
    }
  },
  "required": [
    "sent"
  ]
}
🟢list_blog_posts(language)

Posts of Rafał Doniec's blog about AI in companies, newest first.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "enum": [
        "pl",
        "en"
      ],
      "description": "Language of the texts in the result. Default: en."
    }
  },
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "published": {
            "type": "string",
            "description": "RFC 822 date from the feed."
          }
        },
        "required": [
          "title",
          "url",
          "summary",
          "published"
        ]
      }
    },
    "first_post_expected": {
      "type": "string",
      "description": "Date of the first post, while none is out yet."
    },
    "feed": {
      "type": "string"
    }
  },
  "required": [
    "posts",
    "feed"
  ]
}
🟢get_contact

How to reach Rafał Doniec: e-mail, booking a call, LinkedIn, and the company details.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "book_a_call": {
      "type": "string"
    },
    "linkedin": {
      "type": "string"
    },
    "location": {
      "type": "string"
    },
    "company": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "nip": {
          "type": "string"
        },
        "regon": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "nip",
        "regon"
      ]
    },
    "website": {
      "type": "string"
    }
  },
  "required": [
    "name",
    "email",
    "book_a_call",
    "linkedin",
    "location",
    "company",
    "website"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada8 herramientas
requiere autenticaciónversión no registrada—