> ## Documentation Index
> Fetch the complete documentation index at: https://docs.attio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

export const ChangelogSubscribe = () => {
  const RECAPTCHA_SITEKEY = "6LclumYsAAAAAEDZPKR5FkJS_zFx9hCaLy2Lbw0C";
  const [status, setStatus] = useState("idle");
  const [isPending, setIsPending] = useState(false);
  const [isEnabled, setIsEnabled] = useState(false);
  useEffect(() => {
    const enabled = new URLSearchParams(window.location.search).has("ff_changelog");
    setIsEnabled(enabled);
    if (enabled && !document.querySelector("script[data-recaptcha]")) {
      const script = document.createElement("script");
      script.src = `https://www.google.com/recaptcha/api.js?render=${RECAPTCHA_SITEKEY}`;
      script.dataset.recaptcha = "";
      document.head.appendChild(script);
    }
  }, []);
  const subscribe = async event => {
    event.preventDefault();
    setIsPending(true);
    const email = new FormData(event.currentTarget).get("email");
    try {
      await new Promise(resolve => window.grecaptcha.ready(resolve));
      const token = await window.grecaptcha.execute(RECAPTCHA_SITEKEY, {
        action: "email_cta"
      });
      const response = await fetch("https://attio.com/api/forms/email-cta", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "X-Captcha-Token": token
        },
        body: JSON.stringify({
          email,
          customerEvent: "changelog_subscribed",
          type: "developer"
        })
      });
      const result = await response.json();
      setStatus(result.status === "success" ? "success" : "error");
    } catch {
      setStatus("error");
    } finally {
      setIsPending(false);
    }
  };
  if (!isEnabled) return null;
  return <div className="not-prose flex flex-col items-center text-center my-12">
      <h2 className="text-5xl font-semibold tracking-tight text-gray-900 dark:text-gray-100">
        What’s new
      </h2>
      <p className="mt-4 text-lg text-gray-700 dark:text-gray-300">
        Get updates on Attio’s developer tools in your inbox.
      </p>
      {status === "success" ? <p className="mt-6 text-gray-700 dark:text-gray-300">
          Thanks, you're subscribed to changelog updates.
        </p> : <form onSubmit={subscribe} className="mt-6 flex flex-wrap gap-3 items-start justify-center w-full">
          <label htmlFor="changelog-email" className="sr-only">
            Email
          </label>
          <div className="w-full max-w-sm">
            <input id="changelog-email" name="email" type="email" required maxLength={256} placeholder="Your email address" className="w-full rounded-xl border border-gray-300 dark:border-white/15 bg-white dark:bg-white/5 px-4 py-2.5 text-base text-gray-900 dark:text-gray-100 placeholder:text-gray-500 dark:placeholder:text-gray-400 focus:outline-none focus:border-gray-900 dark:focus:border-white" />
            {status === "error" && <p role="alert" className="mt-2 px-4 text-sm text-red-600 dark:text-red-400" style={{
    textAlign: "start"
  }}>
                Couldn't subscribe. Use a valid email and try again.
              </p>}
          </div>
          <button type="submit" disabled={isPending} aria-busy={isPending} className="w-36 rounded-xl bg-gray-900 dark:bg-white px-5 py-2.5 text-base font-medium text-white dark:text-gray-900 hover:bg-gray-700 dark:hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed">
            {isPending ? "Subscribing…" : "Subscribe"}
          </button>
        </form>}
    </div>;
};

<ChangelogSubscribe />

<Update label="2026-10-01">
  ### Added

  * `delete-task` allows you to delete a task in the workspace, such as a completed follow-up or a duplicate task. See the [supported tools](https://docs.attio.com/mcp/overview#tasks) for details.
</Update>

<Update label="2026-09-02">
  ### Added

  * `list-objects` allows you to list all objects in the workspace, such as companies, people, and deals, with optional fuzzy search by name or API slug. See the [supported tools](https://docs.attio.com/mcp/overview#records-objects) for details.
</Update>

<Update label="2026-08-25">
  ### Added

  * `create-list` allows you to create a new list to group and track records of a single object type. See the [supported tools](https://docs.attio.com/mcp/overview#lists) for details.
  * `update-list` now supports changing a list's permissions: the workspace-wide access level and the access level of specific workspace members.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.