For AI agents

A front door for AI agents.

If an AI assistant is doing your research, it can ask this site directly. Our MCP server (a service AI assistants can connect to and ask questions) answers from these pages, links each answer to its source, and can pass Daniel a message when you ask it to.

Endpoint
adjltechnology.com/mcp
Protocol
MCP, over Streamable HTTP
Sign-in
None

This page’s own structure, drawn at build from its HTML.

People read the top layer, crawlers follow the middle one and machines parse the bottom one.

12 headings · 53 links · 4 schema nodes

Build

Who it’s for

For the assistant doing the legwork.

Some people hand the first round of research to an AI assistant. Find a studio, check what it does, draft the first message. This page is for that assistant, and for whoever sets it up.

The endpoint (the web address a program sends its requests to) speaks MCP, the Model Context Protocol. It’s an open standard for connecting AI assistants to outside tools. Through it, an assistant can search this site, read any page as plain text, and list what we offer and what we’ve built.

Every answer comes from this site’s own words, with a link to the page and section it came from. If the site doesn’t cover something, the search says so. It doesn’t guess.

Connect

One address, no sign-in.

Point an MCP client (the app that connects an AI assistant to a server) at the address below. There’s no key and no account. Each request is a single POST, and each answer is a single JSON reply.

The endpoint

Address
https://adjltechnology.com/mcp
Protocol
Model Context Protocol, version
Also accepts
The older handshake: , and
Transport
Streamable HTTP, JSON replies, no sessions
Sign-in
None
Client configjson

Many clients read a block like this. Where the file lives, and its exact shape, depends on the client.

{
  "mcpServers": {
    "adjl-technology": {
      "type": "http",
      "url": "https://adjltechnology.com/mcp"
    }
  }
}
Claude Codeshell

In Claude Code it’s one command.

claude mcp add --transport http adjl-technology https://adjltechnology.com/mcp
By handshell

Or ask for the tool list with curl (a tool that fetches a web address from the command line), no client at all.

curl -s https://adjltechnology.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: tools/list' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"_meta":{
    "io.modelcontextprotocol/protocolVersion":"2026-07-28",
    "io.modelcontextprotocol/clientCapabilities":{}}}}'

Tools

What an agent can do, and what comes back.

All but one of them only read. The exception is start_conversation, and it acts only when the person behind the agent asks.

search_siteSearch this site

Read-only

Search adjltechnology.com and get back the passages that answer a question, quoted word for word. Each passage comes with its page and a link to the exact section, so you can cite it. It uses the same index and confidence floor as the site’s own Ask This Site box. When nothing clears the floor, it returns no passages and says so. Treat that as something the site doesn’t say, and don’t fill the gap.

Takes
  • query What to look for, in plain words. A whole question works.
  • limit optional The most passages to return, from 1 to 8. The default is 5.
Returns

Passages, best first: the quote, its heading, the page it’s on and a link to that section. Or no passages, and the pages that came closest.

get_pageRead a page

Read-only

Get one page of adjltechnology.com as markdown: its title, its description and all of its text, without the layout. Takes the page’s path, like /services/seo/. Every search_site result, and every entry from list_services and list_work, carries one.

Takes
  • path The page’s path, like /services/ai-engineering/. A full https://adjltechnology.com address works too.
Returns

The page as markdown, with its address and the date its content last changed.

list_servicesList services

Read-only

List what ADJL Technology offers: each practice and the services under it, with the summary from its page and its address.

Takes

Nothing

Returns

Each service: its name, the summary from its page and its address.

list_workList work

Read-only

List the work ADJL Technology has written up on its site, one case page each, with the summary from that page and its address.

Takes

Nothing

Returns

Each case page: its name, the summary from its page and its address.

start_conversationSend Daniel a message

Sends a message

Send a message to Daniel Laskowski, who founded and leads ADJL Technology. It goes through the same intake form as the site’s start page, marked as sent by an AI agent, and Daniel answers by email. Use it only when the person you’re acting for has asked to get in touch, and has seen and approved the exact name, email address and message. Never send on your own initiative. Sending the same message twice in one day has no effect.

Takes
  • name The person’s name, the way they want it on the message.
  • email The address Daniel should reply to. It must be the person’s own.
  • message What they want, in their own words: what it is, who it’s for, and any timing or budget they mentioned. From 20 to 5,000 characters.
  • topic optional The closest topic, if one fits. Left out, it’s sent as Something else.
Returns

Whether it was sent, and what happens next.

The rules

Read-only, with one exception.

  • start_conversation is the only tool that sends anything. It passes Daniel a message through the same form as the start page, marked as sent by an agent.
  • An agent should send one only when the person it works for asks to get in touch and has read the exact message. The tool’s own description tells the agent so.
  • Each IP address (the number that identifies a device on the internet) gets 60 requests a minute. Past that, the endpoint answers 429 (the standard reply that means too many requests) until the minute is up.
  • Three messages a day can come from one IP address, and there’s a daily cap for the whole site. Past either, the tool says so and points to email.
  • No tracking. No cookies, no accounts, and no record of what an agent searches for or reads. When a message is sent, the endpoint keeps two one-way hashes (scrambled fingerprints that can’t be turned back into the original) for that day: one of the IP address it came from, to count messages, and one of the name, email address and message together, so a repeat isn’t sent twice. Both are deleted after that day, the next time an agent uses one of the tools.
  • Answers come only from this site’s published text, through the same index and confidence floor as Ask This Site.

Plain text

No MCP client? Read the plain text.

The same pages are published as text an agent can fetch with one ordinary request. No protocol, no tools, nothing to install.

/llms.txt
An index of every page, one line each, with what the page covers.
/llms-full.txt
Every page’s text as markdown (plain text with simple marks for headings and links), in one file.
index.md
Any page on its own: add index.md to its address, like /agents/index.md.
/sitemap.xml
Every page, with the date its content last changed.

Start here

Tell us what’s slow, or what can’t be found.

One paragraph is plenty. Tell us what you want built, the step that costs the most, or the page that should rank and doesn’t. If you know why the obvious fix hasn’t worked, say that too.

Email
daniel@adjlcapital.com
Email Daniel

Daniel reads and answers these himself, usually within a day or two. No sequence, no drip, and nothing sold to anyone.