Nomic Atlas MCP by usefulapi

Semantic nearest-neighbour search over your datasets, plus indices and projections.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
92%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,180Tokens (tool definitions)
~717 BTypical response size
Moderate attention impact (0.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "nomic-atlas": {
      "url": "https://nomic-atlas.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://nomic-atlas.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢nomic_get_user

Fetch the account the API key belongs to, including the organisations it can access. Start here — the organisation slug feeds the other tools. Atlas: GET /v1/user.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_get_organization(slug)

Fetch an organisation by slug, with the datasets it holds. Atlas: GET /v1/organization/{slug}.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The organisation's slug, from nomic_get_user."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_get_dataset(dataset_id)

Fetch a dataset (Atlas calls it a project) by id — its schema, size, indices and projections. Atlas: GET /v1/project/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "dataset_id": {
      "type": "string",
      "description": "The dataset's id (a UUID)."
    }
  },
  "required": [
    "dataset_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_get_dataset_by_slug(organization_slug, dataset_slug)

Fetch a dataset by organisation slug and dataset slug — the human-readable path, and usually easier than finding the UUID. Atlas: GET /v1/project/{organization_slug}/{project_slug}.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_slug": {
      "type": "string",
      "description": "The organisation's slug."
    },
    "dataset_slug": {
      "type": "string",
      "description": "The dataset's slug."
    }
  },
  "required": [
    "organization_slug",
    "dataset_slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_nearest_neighbors_by_id(atlas_index_id, datum_ids, k)

Semantic search: given the ids of records already in a dataset, return their nearest neighbours in embedding space, with distances. This is what Atlas is for — finding what resembles what across unstructured data. Needs a BUILT index; if the map is still building the call fails with a 500, so check nomic_get_index_job. Atlas: POST /v1/project/data/get/nearest_neighbors/by_id.

Input Schema

{
  "type": "object",
  "properties": {
    "atlas_index_id": {
      "type": "string",
      "description": "The index to search. Read it from the dataset returned by nomic_get_dataset."
    },
    "datum_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Ids of the seed records to find neighbours of."
    },
    "k": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "How many neighbours to return per seed, 1-100."
    }
  },
  "required": [
    "atlas_index_id",
    "datum_ids",
    "k"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_get_index_job(job_id)

Fetch the status of an index-building job. Atlas indexes take time to build, and a vector search against an unbuilt map fails — this is how you tell which it is. Atlas: GET /v1/project/index/job/{job_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "The index job's id."
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_get_projection_schema(projection_id)

Fetch the field schema of one projection — the columns available on its records. Atlas: GET /v1/project/projection/{projection_id}/schema.

Input Schema

{
  "type": "object",
  "properties": {
    "projection_id": {
      "type": "string",
      "description": "The projection's id."
    }
  },
  "required": [
    "projection_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_list_tags(dataset_id, projection_id)

List the tags defined on one projection — the labelled selections a person made on the map. Atlas: GET /v1/project/projection/tags/get/all.

Input Schema

{
  "type": "object",
  "properties": {
    "dataset_id": {
      "type": "string",
      "description": "The dataset's id."
    },
    "projection_id": {
      "type": "string",
      "description": "The projection's id."
    }
  },
  "required": [
    "dataset_id",
    "projection_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢nomic_get_tag_status(dataset_id, tag_id)

Check whether a tag has finished computing its membership. A tag that is still building returns partial results. Atlas: GET /v1/project/projection/tags/status.

Input Schema

{
  "type": "object",
  "properties": {
    "dataset_id": {
      "type": "string",
      "description": "The dataset's id."
    },
    "tag_id": {
      "type": "string",
      "description": "The tag's id, from nomic_list_tags."
    }
  },
  "required": [
    "dataset_id",
    "tag_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools