MongoDB · Capability

MongoDB Atlas Administration API — Data Federation

MongoDB Atlas Administration API — Data Federation. 14 operations. Lead operation: Return All Federated Database Instances in One Project. Self-contained Naftiko capability covering one Mongodb business surface.

Run with Naftiko MongodbData Federation

What You Can Do

GET
Listgroupdatafederation — Return All Federated Database Instances in One Project
/v1/api/atlas/v2/groups/{groupid}/datafederation
POST
Creategroupdatafederation — Create One Federated Database Instance in One Project
/v1/api/atlas/v2/groups/{groupid}/datafederation
DELETE
Deletegroupdatafederation — Remove One Federated Database Instance from One Project
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}
GET
Getgroupdatafederation — Return One Federated Database Instance in One Project
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}
PATCH
Updategroupdatafederation — Update One Federated Database Instance in One Project
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}
GET
Listgroupdatafederationlimits — Return All Query Limits for One Federated Database Instance
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/limits
DELETE
Deletegroupdatafederationlimit — Delete One Query Limit for One Federated Database Instance
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/limits/{limitname}
GET
Getgroupdatafederationlimit — Return One Federated Database Instance Query Limit for One Project
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/limits/{limitname}
PATCH
Setgroupdatafederationlimit — Configure One Query Limit for One Federated Database Instance
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/limits/{limitname}
GET
Downloadgroupdatafederationquerylogs — Download Query Logs for One Federated Database Instance
/v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/querylogs-gz
GET
Listgroupprivatenetworksettingendpointids — Return All Federated Database Instance and Online Archive Private Endpoints in One Project
/v1/api/atlas/v2/groups/{groupid}/privatenetworksettings/endpointids
POST
Creategroupprivatenetworksettingendpointid — Create One Federated Database Instance and Online Archive Private Endpoint for One Project
/v1/api/atlas/v2/groups/{groupid}/privatenetworksettings/endpointids
DELETE
Deletegroupprivatenetworksettingendpointid — Remove One Federated Database Instance and Online Archive Private Endpoint from One Project
/v1/api/atlas/v2/groups/{groupid}/privatenetworksettings/endpointids/{endpointid}
GET
Getgroupprivatenetworksettingendpointid — Return One Federated Database Instance and Online Archive Private Endpoint in One Project
/v1/api/atlas/v2/groups/{groupid}/privatenetworksettings/endpointids/{endpointid}

MCP Tools

return-all-federated-database-instances

Return All Federated Database Instances in One Project

read-only idempotent
create-one-federated-database-instance

Create One Federated Database Instance in One Project

remove-one-federated-database-instance

Remove One Federated Database Instance from One Project

idempotent
return-one-federated-database-instance

Return One Federated Database Instance in One Project

read-only idempotent
update-one-federated-database-instance

Update One Federated Database Instance in One Project

idempotent
return-all-query-limits-one

Return All Query Limits for One Federated Database Instance

read-only idempotent
delete-one-query-limit-one

Delete One Query Limit for One Federated Database Instance

idempotent
return-one-federated-database-instance-2

Return One Federated Database Instance Query Limit for One Project

read-only idempotent
configure-one-query-limit-one

Configure One Query Limit for One Federated Database Instance

idempotent
download-query-logs-one-federated

Download Query Logs for One Federated Database Instance

read-only idempotent
return-all-federated-database-instance

Return All Federated Database Instance and Online Archive Private Endpoints in One Project

read-only idempotent
create-one-federated-database-instance-2

Create One Federated Database Instance and Online Archive Private Endpoint for One Project

remove-one-federated-database-instance-2

Remove One Federated Database Instance and Online Archive Private Endpoint from One Project

idempotent
return-one-federated-database-instance-3

Return One Federated Database Instance and Online Archive Private Endpoint in One Project

read-only idempotent

Capability Spec

atlas-data-federation.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: MongoDB Atlas Administration API — Data Federation
  description: 'MongoDB Atlas Administration API — Data Federation. 14 operations. Lead operation: Return All Federated Database
    Instances in One Project. Self-contained Naftiko capability covering one Mongodb business surface.'
  tags:
  - Mongodb
  - Data Federation
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MONGODB_API_KEY: MONGODB_API_KEY
capability:
  consumes:
  - type: http
    namespace: atlas-data-federation
    baseUri: https://cloud.mongodb.com
    description: MongoDB Atlas Administration API — Data Federation business capability. Self-contained, no shared references.
    resources:
    - name: api-atlas-v2-groups-groupId-dataFederation
      path: /api/atlas/v2/groups/{groupId}/dataFederation
      operations:
      - name: listgroupdatafederation
        method: GET
        description: Return All Federated Database Instances in One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
          description: Type of Federated Database Instances to return.
      - name: creategroupdatafederation
        method: POST
        description: Create One Federated Database Instance in One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: skipRoleValidation
          in: query
          type: boolean
          description: Flag that indicates whether this request should check if the requesting IAM role can read from the
            S3 bucket. AWS checks if the role can list the objects in the
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-atlas-v2-groups-groupId-dataFederation-tenantName
      path: /api/atlas/v2/groups/{groupId}/dataFederation/{tenantName}
      operations:
      - name: deletegroupdatafederation
        method: DELETE
        description: Remove One Federated Database Instance from One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance to remove.
          required: true
      - name: getgroupdatafederation
        method: GET
        description: Return One Federated Database Instance in One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the Federated Database to return.
          required: true
      - name: updategroupdatafederation
        method: PATCH
        description: Update One Federated Database Instance in One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance to update.
          required: true
        - name: skipRoleValidation
          in: query
          type: boolean
          description: Flag that indicates whether this request should check if the requesting IAM role can read from the
            S3 bucket. AWS checks if the role can list the objects in the
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-atlas-v2-groups-groupId-dataFederation-tenantName-limits
      path: /api/atlas/v2/groups/{groupId}/dataFederation/{tenantName}/limits
      operations:
      - name: listgroupdatafederationlimits
        method: GET
        description: Return All Query Limits for One Federated Database Instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance for which you want to retrieve
            query limits.
          required: true
    - name: api-atlas-v2-groups-groupId-dataFederation-tenantName-limits-limitName
      path: /api/atlas/v2/groups/{groupId}/dataFederation/{tenantName}/limits/{limitName}
      operations:
      - name: deletegroupdatafederationlimit
        method: DELETE
        description: Delete One Query Limit for One Federated Database Instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance to which the query limit applies.
          required: true
        - name: limitName
          in: path
          type: string
          description: Human-readable label that identifies this data federation instance limit.
          required: true
      - name: getgroupdatafederationlimit
        method: GET
        description: Return One Federated Database Instance Query Limit for One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance to which the query limit applies.
          required: true
        - name: limitName
          in: path
          type: string
          description: Human-readable label that identifies this data federation instance limit.
          required: true
      - name: setgroupdatafederationlimit
        method: PATCH
        description: Configure One Query Limit for One Federated Database Instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance to which the query limit applies.
          required: true
        - name: limitName
          in: path
          type: string
          description: Human-readable label that identifies this data federation instance limit.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-atlas-v2-groups-groupId-dataFederation-tenantName-queryLogs.gz
      path: /api/atlas/v2/groups/{groupId}/dataFederation/{tenantName}/queryLogs.gz
      operations:
      - name: downloadgroupdatafederationquerylogs
        method: GET
        description: Download Query Logs for One Federated Database Instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: endDate
          in: query
          type: integer
          description: Timestamp that specifies the end point for the range of log messages to download.  MongoDB Cloud expresses
            this timestamp in the number of seconds that have ela
        - name: startDate
          in: query
          type: integer
          description: Timestamp that specifies the starting point for the range of log messages to download. MongoDB Cloud
            expresses this timestamp in the number of seconds that have
        - name: tenantName
          in: path
          type: string
          description: Human-readable label that identifies the federated database instance for which you want to download
            query logs.
          required: true
    - name: api-atlas-v2-groups-groupId-privateNetworkSettings-endpointIds
      path: /api/atlas/v2/groups/{groupId}/privateNetworkSettings/endpointIds
      operations:
      - name: listgroupprivatenetworksettingendpointids
        method: GET
        description: Return All Federated Database Instance and Online Archive Private Endpoints in One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: creategroupprivatenetworksettingendpointid
        method: POST
        description: Create One Federated Database Instance and Online Archive Private Endpoint for One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-atlas-v2-groups-groupId-privateNetworkSettings-endpointIds-endpointId
      path: /api/atlas/v2/groups/{groupId}/privateNetworkSettings/endpointIds/{endpointId}
      operations:
      - name: deletegroupprivatenetworksettingendpointid
        method: DELETE
        description: Remove One Federated Database Instance and Online Archive Private Endpoint from One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: endpointId
          in: path
          type: string
          description: Unique 22-character alphanumeric string that identifies the private endpoint to remove. Atlas Data
            Federation supports AWS private endpoints using the AWS Priva
          required: true
      - name: getgroupprivatenetworksettingendpointid
        method: GET
        description: Return One Federated Database Instance and Online Archive Private Endpoint in One Project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: endpointId
          in: path
          type: string
          description: Unique 22-character alphanumeric string that identifies the private endpoint to return. Atlas Data
            Federation supports AWS private endpoints using the AWS Priva
          required: true
    authentication:
      type: bearer
      token: '{{env.MONGODB_API_KEY}}'
  exposes:
  - type: rest
    namespace: atlas-data-federation-rest
    port: 8080
    description: REST adapter for MongoDB Atlas Administration API — Data Federation. One Spectral-compliant resource per
      consumed operation, prefixed with /v1.
    resources:
    - path: /v1/api/atlas/v2/groups/{groupid}/datafederation
      name: api-atlas-v2-groups-groupid-datafederation
      description: REST surface for api-atlas-v2-groups-groupId-dataFederation.
      operations:
      - method: GET
        name: listgroupdatafederation
        description: Return All Federated Database Instances in One Project
        call: atlas-data-federation.listgroupdatafederation
        with:
          type: rest.type
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: creategroupdatafederation
        description: Create One Federated Database Instance in One Project
        call: atlas-data-federation.creategroupdatafederation
        with:
          skipRoleValidation: rest.skipRoleValidation
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}
      name: api-atlas-v2-groups-groupid-datafederation-tenantname
      description: REST surface for api-atlas-v2-groups-groupId-dataFederation-tenantName.
      operations:
      - method: DELETE
        name: deletegroupdatafederation
        description: Remove One Federated Database Instance from One Project
        call: atlas-data-federation.deletegroupdatafederation
        with:
          tenantName: rest.tenantName
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getgroupdatafederation
        description: Return One Federated Database Instance in One Project
        call: atlas-data-federation.getgroupdatafederation
        with:
          tenantName: rest.tenantName
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updategroupdatafederation
        description: Update One Federated Database Instance in One Project
        call: atlas-data-federation.updategroupdatafederation
        with:
          tenantName: rest.tenantName
          skipRoleValidation: rest.skipRoleValidation
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/limits
      name: api-atlas-v2-groups-groupid-datafederation-tenantname-limits
      description: REST surface for api-atlas-v2-groups-groupId-dataFederation-tenantName-limits.
      operations:
      - method: GET
        name: listgroupdatafederationlimits
        description: Return All Query Limits for One Federated Database Instance
        call: atlas-data-federation.listgroupdatafederationlimits
        with:
          tenantName: rest.tenantName
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/limits/{limitname}
      name: api-atlas-v2-groups-groupid-datafederation-tenantname-limits-limitname
      description: REST surface for api-atlas-v2-groups-groupId-dataFederation-tenantName-limits-limitName.
      operations:
      - method: DELETE
        name: deletegroupdatafederationlimit
        description: Delete One Query Limit for One Federated Database Instance
        call: atlas-data-federation.deletegroupdatafederationlimit
        with:
          tenantName: rest.tenantName
          limitName: rest.limitName
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getgroupdatafederationlimit
        description: Return One Federated Database Instance Query Limit for One Project
        call: atlas-data-federation.getgroupdatafederationlimit
        with:
          tenantName: rest.tenantName
          limitName: rest.limitName
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: setgroupdatafederationlimit
        description: Configure One Query Limit for One Federated Database Instance
        call: atlas-data-federation.setgroupdatafederationlimit
        with:
          tenantName: rest.tenantName
          limitName: rest.limitName
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/atlas/v2/groups/{groupid}/datafederation/{tenantname}/querylogs-gz
      name: api-atlas-v2-groups-groupid-datafederation-tenantname-querylogs-gz
      description: REST surface for api-atlas-v2-groups-groupId-dataFederation-tenantName-queryLogs.gz.
      operations:
      - method: GET
        name: downloadgroupdatafederationquerylogs
        description: Download Query Logs for One Federated Database Instance
        call: atlas-data-federation.downloadgroupdatafederationquerylogs
        with:
          endDate: rest.endDate
          startDate: rest.startDate
          tenantName: rest.tenantName
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/atlas/v2/groups/{groupid}/privatenetworksettings/endpointids
      name: api-atlas-v2-groups-groupid-privatenetworksettings-endpointids
      description: REST surface for api-atlas-v2-groups-groupId-privateNetworkSettings-endpointIds.
      operations:
      - method: GET
        name: listgroupprivatenetworksettingendpointids
        description: Return All Federated Database Instance and Online Archive Private Endpoints in One Project
        call: atlas-data-federation.listgroupprivatenetworksettingendpointids
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: creategroupprivatenetworksettingendpointid
        description: Create One Federated Database Instance and Online Archive Private Endpoint for One Project
        call: atlas-data-federation.creategroupprivatenetworksettingendpointid
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/atlas/v2/groups/{groupid}/privatenetworksettings/endpointids/{endpointid}
      name: api-atlas-v2-groups-groupid-privatenetworksettings-endpointids-endpointid
      description: REST surface for api-atlas-v2-groups-groupId-privateNetworkSettings-endpointIds-endpointId.
      operations:
      - method: DELETE
        name: deletegroupprivatenetworksettingendpointid
        description: Remove One Federated Database Instance and Online Archive Private Endpoint from One Project
        call: atlas-data-federation.deletegroupprivatenetworksettingendpointid
        with:
          endpointId: rest.endpointId
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getgroupprivatenetworksettingendpointid
        description: Return One Federated Database Instance and Online Archive Private Endpoint in One Project
        call: atlas-data-federation.getgroupprivatenetworksettingendpointid
        with:
          endpointId: rest.endpointId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: atlas-data-federation-mcp
    port: 9090
    transport: http
    description: MCP adapter for MongoDB Atlas Administration API — Data Federation. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: return-all-federated-database-instances
      description: Return All Federated Database Instances in One Project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.listgroupdatafederation
      with:
        type: tools.type
      outputParameters:
      - type: object
        mapping: $.
    - name: create-one-federated-database-instance
      description: Create One Federated Database Instance in One Project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: atlas-data-federation.creategroupdatafederation
      with:
        skipRoleValidation: tools.skipRoleValidation
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-one-federated-database-instance
      description: Remove One Federated Database Instance from One Project
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: atlas-data-federation.deletegroupdatafederation
      with:
        tenantName: tools.tenantName
      outputParameters:
      - type: object
        mapping: $.
    - name: return-one-federated-database-instance
      description: Return One Federated Database Instance in One Project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.getgroupdatafederation
      with:
        tenantName: tools.tenantName
      outputParameters:
      - type: object
        mapping: $.
    - name: update-one-federated-database-instance
      description: Update One Federated Database Instance in One Project
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: atlas-data-federation.updategroupdatafederation
      with:
        tenantName: tools.tenantName
        skipRoleValidation: tools.skipRoleValidation
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: return-all-query-limits-one
      description: Return All Query Limits for One Federated Database Instance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.listgroupdatafederationlimits
      with:
        tenantName: tools.tenantName
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-one-query-limit-one
      description: Delete One Query Limit for One Federated Database Instance
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: atlas-data-federation.deletegroupdatafederationlimit
      with:
        tenantName: tools.tenantName
        limitName: tools.limitName
      outputParameters:
      - type: object
        mapping: $.
    - name: return-one-federated-database-instance-2
      description: Return One Federated Database Instance Query Limit for One Project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.getgroupdatafederationlimit
      with:
        tenantName: tools.tenantName
        limitName: tools.limitName
      outputParameters:
      - type: object
        mapping: $.
    - name: configure-one-query-limit-one
      description: Configure One Query Limit for One Federated Database Instance
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: atlas-data-federation.setgroupdatafederationlimit
      with:
        tenantName: tools.tenantName
        limitName: tools.limitName
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: download-query-logs-one-federated
      description: Download Query Logs for One Federated Database Instance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.downloadgroupdatafederationquerylogs
      with:
        endDate: tools.endDate
        startDate: tools.startDate
        tenantName: tools.tenantName
      outputParameters:
      - type: object
        mapping: $.
    - name: return-all-federated-database-instance
      description: Return All Federated Database Instance and Online Archive Private Endpoints in One Project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.listgroupprivatenetworksettingendpointids
      outputParameters:
      - type: object
        mapping: $.
    - name: create-one-federated-database-instance-2
      description: Create One Federated Database Instance and Online Archive Private Endpoint for One Project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: atlas-data-federation.creategroupprivatenetworksettingendpointid
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-one-federated-database-instance-2
      description: Remove One Federated Database Instance and Online Archive Private Endpoint from One Project
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: atlas-data-federation.deletegroupprivatenetworksettingendpointid
      with:
        endpointId: tools.endpointId
      outputParameters:
      - type: object
        mapping: $.
    - name: return-one-federated-database-instance-3
      description: Return One Federated Database Instance and Online Archive Private Endpoint in One Project
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: atlas-data-federation.getgroupprivatenetworksettingendpointid
      with:
        endpointId: tools.endpointId
      outputParameters:
      - type: object
        mapping: $.