---
title: "Agent Tools — WebMCP | Erkam Demirci"
description: "The in-page WebMCP tools erkamdemirci.com registers via document.modelContext for browser agents, with their contracts."
canonical_url: "https://erkamdemirci.com/agents"
last_updated: "2026-09-02"
language: "en"
---

# Agent tools

> erkamdemirci.com registers in-page WebMCP tools via `document.modelContext` (legacy `navigator.modelContext` alias included) on every page, so browser agents act through declared, typed functions instead of DOM guessing. Fully additive — the site is server-rendered and nothing is gated behind tools.

## Tools

### `get_profile_facts` — read-only

Return the operational facts of Erkam Demirci's practice: location, contact channels, response commitment, live product count, platforms, stack, and current availability. Read-only. Returns JSON {name, job_title, location, email, whatsapp, response_time, products_live, platforms, stack, availability, social: [{label, url}]} — or {error}.

### `get_services` — read-only

List the services offered (web design & development, corporate websites, mobile apps, brand identity & design systems) with what each includes, the engagement model, and the FAQ. Read-only. Returns JSON {services: [{title, summary, includes[]}], engagement_steps[], faq: [{question, answer}], quote_url} — or {error}.

### `get_case_studies` — read-only

List the front-end reconstruction studies shown on the site — measured rebuilds of live websites, re-identified under fictional brands and published no-index — with type, role, one-line summary, and case-study URL. Read-only. Returns JSON {projects: [{name, slug, type, role, summary, url}], total} — or {error}.

### `list_blog_posts` — read-only

List blog guides (Turkish-language corpus) newest first: slug, title, excerpt, publish date, reading time, URL. Read-only, paginated. Returns JSON {posts: [{slug, title, excerpt, date_published, reading_minutes, language, url}], total, has_more, next_offset} — or {error}.

### `get_blog_post` — read-only

Fetch one blog post as markdown with YAML frontmatter (title, description, canonical_url, last_updated, language). Posts are Turkish. Read-only. Returns JSON {slug, url, markdown} — or {error}.

### `get_page` — read-only

Fetch any indexable page of this site as clean markdown (the same content the HTML renders, with frontmatter). Read-only. Returns JSON {path, url, markdown} — or {error}.

### `request_quote` — action

Send a project brief to Erkam Demirci (the site's real contact rail — an email lands in his inbox and gets a written reply within 48 hours on working days). Requires the user's explicit consent to KVKK personal-data processing. If the mail rail is not yet configured the tool does not send and instead returns the direct email handoff. Returns JSON {status: "sent"|"email_fallback", email, note} — or {error}.

## Notes for agents

- Quotes and availability change — confirm via `get_profile_facts` or the [contact page](https://erkamdemirci.com/contact) live.
- `request_quote` sends a real brief and requires the user's explicit KVKK consent (`kvkk_consent: true`).
- Every indexable page also exists as markdown at `<url>.md`; the index is [/llms.txt](https://erkamdemirci.com/llms.txt).
