Skip to content

Claude certification practice exams and AI blog

by szymonpaluch.com · remote · no sign-in to list tools · v1.0.0 · published by com.szymonpaluch

Free, unofficial practice questions for four Claude certifications, plus an AI blog (EN/PL).

Changes · 2

6 tools: 2 change things and 4 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http szymonpaluch https://szymonpaluch.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "book_a_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "book_a_call" says "call": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

6 tools

Changes things 2Claude Code: ask
  • book_a_callThe link to book a call with Szymon Paluch, plus his email and phone.1 finding

    Why it is in this group

    • The name "book_a_call" says "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "book_a_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "book_a_call" says "call": a word for a change.

      What this check looks for
    Description, as the server wrote it
    The link to book a call with Szymon Paluch, plus his email and phone.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • practice_questionOne question from Szymon Paluch's free, unofficial practice exams for the Claude certifications: ccar-f = Claude Certified Architect – Foundations (60 questions); ccar-p = Claude C…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    One question from Szymon Paluch's free, unofficial practice exams for the Claude certifications: ccar-f = Claude Certified Architect – Foundations (60 questions); ccar-p = Claude Certified Architect – Professional (63 questions); ccao-f = Claude Certified Associate – Foundations (60 questions); ccdv-f = Claude Certified Developer – Foundations (53 questions). Choose the exam with `exam` (default ccar-f, Architect – Foundations, which Szymon passed with 833/1000). Returns the scenario, question, options, the correct answer and an explanation; some questions are multiple response and say how many answers to select. Show the question and options first and reveal the answer only after the user has answered. Filter by exam domain (the first result names it; an out-of-range domain lists them all) or ask for a question number. Questions are in English, as on the real exams.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: false
Only reads 4Claude Code: allow
  • get_servicesSzymon Paluch's services (AI implementation, consulting, workshops, speaking, the Certified AI Consultant Program) with indicative prices in PLN (net, primary) and USD (converted).No findings

    Why it is in this group

    • The name "get_services" says "get": a word for reading.
    Description, as the server wrote it
    Szymon Paluch's services (AI implementation, consulting, workshops, speaking, the Certified AI Consultant Program) with indicative prices in PLN (net, primary) and USD (converted). Final quotes are scoped per engagement.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_speakingSzymon Paluch's conference talks, meetups, podcasts and trainings since 2014, newest first.No findings

    Why it is in this group

    • The name "get_speaking" says "get": a word for reading.
    Description, as the server wrote it
    Szymon Paluch's conference talks, meetups, podcasts and trainings since 2014, newest first. Only engagements verified against a public source.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • read_postFull text of one blog post as Markdown, with its URL, date and FAQ.No findings

    Why it is in this group

    • The name "read_post" says "read": a word for reading.
    Description, as the server wrote it
    Full text of one blog post as Markdown, with its URL, date and FAQ. Takes the slug from search_posts, or the post URL.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • search_postsSearch Szymon Paluch's blog (agentic engineering, AI implementation, Claude certification, AI in companies).No findings

    Why it is in this group

    • The name "search_posts" says "search": a word for reading.
    Description, as the server wrote it
    Search Szymon Paluch's blog (agentic engineering, AI implementation, Claude certification, AI in companies). Returns matching posts with title, date, summary, slug and URL. Every post exists in English and Polish under the same slug.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http szymonpaluch https://szymonpaluch.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__szymonpaluch__search_posts",
      "mcp__szymonpaluch__read_post",
      "mcp__szymonpaluch__get_services",
      "mcp__szymonpaluch__get_speaking"
    ],
    "ask": [
      "mcp__szymonpaluch__practice_question",
      "mcp__szymonpaluch__book_a_call"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as szymonpaluch. Review it before you use it.