naftiko: 1.0.0-alpha2 info: label: MongoDB Atlas Administration API — Programmatic API Keys description: 'MongoDB Atlas Administration API — Programmatic API Keys. 14 operations. Lead operation: Return All Organization API Keys Assigned to One Project. Self-contained Naftiko capability covering one Mongodb business surface.' tags: - Mongodb - Programmatic API Keys created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MONGODB_API_KEY: MONGODB_API_KEY capability: consumes: - type: http namespace: atlas-programmatic-api-keys baseUri: https://cloud.mongodb.com description: MongoDB Atlas Administration API — Programmatic API Keys business capability. Self-contained, no shared references. resources: - name: api-atlas-v2-groups-groupId-apiKeys path: /api/atlas/v2/groups/{groupId}/apiKeys operations: - name: listgroupapikeys method: GET description: Return All Organization API Keys Assigned to One Project outputRawFormat: json outputParameters: - name: result type: object value: $. - name: creategroupapikey method: POST description: Create and Assign One Organization API Key to 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-apiKeys-apiUserId path: /api/atlas/v2/groups/{groupId}/apiKeys/{apiUserId} operations: - name: removegroupapikey method: DELETE description: Unassign One Organization API Key from One Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key that you want to unassign from one project. required: true - name: updategroupapikeyroles method: PATCH description: Update Organization API Key Roles for One Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key that you want to unassign from one project. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: addgroupapikey method: POST description: Assign One Organization API Key to One Project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-atlas-v2-orgs-orgId-apiKeys path: /api/atlas/v2/orgs/{orgId}/apiKeys operations: - name: listorgapikeys method: GET description: Return All Organization API Keys outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createorgapikey method: POST description: Create One Organization API Key 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-orgs-orgId-apiKeys-apiUserId path: /api/atlas/v2/orgs/{orgId}/apiKeys/{apiUserId} operations: - name: deleteorgapikey method: DELETE description: Remove One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key. required: true - name: getorgapikey method: GET description: Return One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key that you want to update. required: true - name: updateorgapikey method: PATCH description: Update One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key you want to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-atlas-v2-orgs-orgId-apiKeys-apiUserId-accessList path: /api/atlas/v2/orgs/{orgId}/apiKeys/{apiUserId}/accessList operations: - name: listorgapikeyaccesslistentries method: GET description: Return All Access List Entries for One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key for which you want to return access list entries. required: true - name: createorgapikeyaccesslistentry method: POST description: Create One Access List Entry for One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key for which you want to create a new access list entry. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-atlas-v2-orgs-orgId-apiKeys-apiUserId-accessList-ipAddress path: /api/atlas/v2/orgs/{orgId}/apiKeys/{apiUserId}/accessList/{ipAddress} operations: - name: deleteorgapikeyaccesslistentry method: DELETE description: Remove One Access List Entry for One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key for which you want to remove access list entries. required: true - name: ipAddress in: path type: string description: One IP address or multiple IP addresses represented as one CIDR block to limit requests to API resources in the specified organization. When adding a CIDR block required: true - name: getorgapikeyaccesslistentry method: GET description: Return One Access List Entry for One Organization API Key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ipAddress in: path type: string description: One IP address or multiple IP addresses represented as one CIDR block to limit requests to API resources in the specified organization. When adding a CIDR bloc required: true - name: apiUserId in: path type: string description: Unique 24-hexadecimal digit string that identifies this organization API key for which you want to return access list entries. required: true authentication: type: bearer token: '{{env.MONGODB_API_KEY}}' exposes: - type: rest namespace: atlas-programmatic-api-keys-rest port: 8080 description: REST adapter for MongoDB Atlas Administration API — Programmatic API Keys. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/atlas/v2/groups/{groupid}/apikeys name: api-atlas-v2-groups-groupid-apikeys description: REST surface for api-atlas-v2-groups-groupId-apiKeys. operations: - method: GET name: listgroupapikeys description: Return All Organization API Keys Assigned to One Project call: atlas-programmatic-api-keys.listgroupapikeys outputParameters: - type: object mapping: $. - method: POST name: creategroupapikey description: Create and Assign One Organization API Key to One Project call: atlas-programmatic-api-keys.creategroupapikey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/atlas/v2/groups/{groupid}/apikeys/{apiuserid} name: api-atlas-v2-groups-groupid-apikeys-apiuserid description: REST surface for api-atlas-v2-groups-groupId-apiKeys-apiUserId. operations: - method: DELETE name: removegroupapikey description: Unassign One Organization API Key from One Project call: atlas-programmatic-api-keys.removegroupapikey with: apiUserId: rest.apiUserId outputParameters: - type: object mapping: $. - method: PATCH name: updategroupapikeyroles description: Update Organization API Key Roles for One Project call: atlas-programmatic-api-keys.updategroupapikeyroles with: apiUserId: rest.apiUserId body: rest.body outputParameters: - type: object mapping: $. - method: POST name: addgroupapikey description: Assign One Organization API Key to One Project call: atlas-programmatic-api-keys.addgroupapikey with: apiUserId: rest.apiUserId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/atlas/v2/orgs/{orgid}/apikeys name: api-atlas-v2-orgs-orgid-apikeys description: REST surface for api-atlas-v2-orgs-orgId-apiKeys. operations: - method: GET name: listorgapikeys description: Return All Organization API Keys call: atlas-programmatic-api-keys.listorgapikeys outputParameters: - type: object mapping: $. - method: POST name: createorgapikey description: Create One Organization API Key call: atlas-programmatic-api-keys.createorgapikey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/atlas/v2/orgs/{orgid}/apikeys/{apiuserid} name: api-atlas-v2-orgs-orgid-apikeys-apiuserid description: REST surface for api-atlas-v2-orgs-orgId-apiKeys-apiUserId. operations: - method: DELETE name: deleteorgapikey description: Remove One Organization API Key call: atlas-programmatic-api-keys.deleteorgapikey with: apiUserId: rest.apiUserId outputParameters: - type: object mapping: $. - method: GET name: getorgapikey description: Return One Organization API Key call: atlas-programmatic-api-keys.getorgapikey with: apiUserId: rest.apiUserId outputParameters: - type: object mapping: $. - method: PATCH name: updateorgapikey description: Update One Organization API Key call: atlas-programmatic-api-keys.updateorgapikey with: apiUserId: rest.apiUserId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/atlas/v2/orgs/{orgid}/apikeys/{apiuserid}/accesslist name: api-atlas-v2-orgs-orgid-apikeys-apiuserid-accesslist description: REST surface for api-atlas-v2-orgs-orgId-apiKeys-apiUserId-accessList. operations: - method: GET name: listorgapikeyaccesslistentries description: Return All Access List Entries for One Organization API Key call: atlas-programmatic-api-keys.listorgapikeyaccesslistentries with: apiUserId: rest.apiUserId outputParameters: - type: object mapping: $. - method: POST name: createorgapikeyaccesslistentry description: Create One Access List Entry for One Organization API Key call: atlas-programmatic-api-keys.createorgapikeyaccesslistentry with: apiUserId: rest.apiUserId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/atlas/v2/orgs/{orgid}/apikeys/{apiuserid}/accesslist/{ipaddress} name: api-atlas-v2-orgs-orgid-apikeys-apiuserid-accesslist-ipaddress description: REST surface for api-atlas-v2-orgs-orgId-apiKeys-apiUserId-accessList-ipAddress. operations: - method: DELETE name: deleteorgapikeyaccesslistentry description: Remove One Access List Entry for One Organization API Key call: atlas-programmatic-api-keys.deleteorgapikeyaccesslistentry with: apiUserId: rest.apiUserId ipAddress: rest.ipAddress outputParameters: - type: object mapping: $. - method: GET name: getorgapikeyaccesslistentry description: Return One Access List Entry for One Organization API Key call: atlas-programmatic-api-keys.getorgapikeyaccesslistentry with: ipAddress: rest.ipAddress apiUserId: rest.apiUserId outputParameters: - type: object mapping: $. - type: mcp namespace: atlas-programmatic-api-keys-mcp port: 9090 transport: http description: MCP adapter for MongoDB Atlas Administration API — Programmatic API Keys. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: return-all-organization-api-keys description: Return All Organization API Keys Assigned to One Project hints: readOnly: true destructive: false idempotent: true call: atlas-programmatic-api-keys.listgroupapikeys outputParameters: - type: object mapping: $. - name: create-and-assign-one-organization description: Create and Assign One Organization API Key to One Project hints: readOnly: false destructive: false idempotent: false call: atlas-programmatic-api-keys.creategroupapikey with: body: tools.body outputParameters: - type: object mapping: $. - name: unassign-one-organization-api-key description: Unassign One Organization API Key from One Project hints: readOnly: false destructive: true idempotent: true call: atlas-programmatic-api-keys.removegroupapikey with: apiUserId: tools.apiUserId outputParameters: - type: object mapping: $. - name: update-organization-api-key-roles description: Update Organization API Key Roles for One Project hints: readOnly: false destructive: false idempotent: true call: atlas-programmatic-api-keys.updategroupapikeyroles with: apiUserId: tools.apiUserId body: tools.body outputParameters: - type: object mapping: $. - name: assign-one-organization-api-key description: Assign One Organization API Key to One Project hints: readOnly: false destructive: false idempotent: false call: atlas-programmatic-api-keys.addgroupapikey with: apiUserId: tools.apiUserId body: tools.body outputParameters: - type: object mapping: $. - name: return-all-organization-api-keys-2 description: Return All Organization API Keys hints: readOnly: true destructive: false idempotent: true call: atlas-programmatic-api-keys.listorgapikeys outputParameters: - type: object mapping: $. - name: create-one-organization-api-key description: Create One Organization API Key hints: readOnly: false destructive: false idempotent: false call: atlas-programmatic-api-keys.createorgapikey with: body: tools.body outputParameters: - type: object mapping: $. - name: remove-one-organization-api-key description: Remove One Organization API Key hints: readOnly: false destructive: true idempotent: true call: atlas-programmatic-api-keys.deleteorgapikey with: apiUserId: tools.apiUserId outputParameters: - type: object mapping: $. - name: return-one-organization-api-key description: Return One Organization API Key hints: readOnly: true destructive: false idempotent: true call: atlas-programmatic-api-keys.getorgapikey with: apiUserId: tools.apiUserId outputParameters: - type: object mapping: $. - name: update-one-organization-api-key description: Update One Organization API Key hints: readOnly: false destructive: false idempotent: true call: atlas-programmatic-api-keys.updateorgapikey with: apiUserId: tools.apiUserId body: tools.body outputParameters: - type: object mapping: $. - name: return-all-access-list-entries description: Return All Access List Entries for One Organization API Key hints: readOnly: true destructive: false idempotent: true call: atlas-programmatic-api-keys.listorgapikeyaccesslistentries with: apiUserId: tools.apiUserId outputParameters: - type: object mapping: $. - name: create-one-access-list-entry description: Create One Access List Entry for One Organization API Key hints: readOnly: true destructive: false idempotent: false call: atlas-programmatic-api-keys.createorgapikeyaccesslistentry with: apiUserId: tools.apiUserId body: tools.body outputParameters: - type: object mapping: $. - name: remove-one-access-list-entry description: Remove One Access List Entry for One Organization API Key hints: readOnly: false destructive: true idempotent: true call: atlas-programmatic-api-keys.deleteorgapikeyaccesslistentry with: apiUserId: tools.apiUserId ipAddress: tools.ipAddress outputParameters: - type: object mapping: $. - name: return-one-access-list-entry description: Return One Access List Entry for One Organization API Key hints: readOnly: true destructive: false idempotent: true call: atlas-programmatic-api-keys.getorgapikeyaccesslistentry with: ipAddress: tools.ipAddress apiUserId: tools.apiUserId outputParameters: - type: object mapping: $.