Rafał Doniec: AI for companies

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

使うべきか

品質と安全性

A
説明の品質
98%
スキーマの完全性
89%
命名の品質
93%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,672トークン数(ツール定義)
~3.2 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.09%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "services": {
      "url": "https://www.rafaldoniec.com/mcp"
    }
  }
}

リモートエンドポイント

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

できること

ツール一覧

ツール(8)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢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.

入力スキーマ

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

出力スキーマ

{
  "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.

入力スキーマ

{
  "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
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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
}

出力スキーマ

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

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

入力スキーマ

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

出力スキーマ

{
  "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.

入力スキーマ

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

出力スキーマ

{
  "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"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 8 件
認証が必要バージョンは記録されていません—