Neon · Capability

Neon Management API

The Neon Management API is a RESTful interface for programmatically managing Neon serverless Postgres resources. It allows developers to create and manage projects, branches, databases, roles, compute endpoints, and operations. The API supports everything available through the Neon Console, enabling automation of database infrastructure workflows. An OpenAPI 3.0 specification is available along with TypeScript, Python, and Go SDKs.

Run with Naftiko NeonAPI

What You Can Do

GET
Listprojects — List projects
/projects
POST
Createproject — Create a project
/projects
GET
Getproject — Retrieve project details
/projects/{project_id}
PATCH
Updateproject — Update a project
/projects/{project_id}
DELETE
Deleteproject — Delete a project
/projects/{project_id}
GET
Listprojectbranches — List branches
/projects/{project_id}/branches
POST
Createprojectbranch — Create a branch
/projects/{project_id}/branches
GET
Getprojectbranch — Retrieve branch details
/projects/{project_id}/branches/{branch_id}
PATCH
Updateprojectbranch — Update a branch
/projects/{project_id}/branches/{branch_id}
DELETE
Deleteprojectbranch — Delete a branch
/projects/{project_id}/branches/{branch_id}
POST
Restoreprojectbranch — Restore a branch
/projects/{project_id}/branches/{branch_id}/restore
GET
Listprojectbranchdatabases — List databases
/projects/{project_id}/branches/{branch_id}/databases
POST
Createprojectbranchdatabase — Create a database
/projects/{project_id}/branches/{branch_id}/databases
GET
Getprojectbranchdatabase — Retrieve database details
/projects/{project_id}/branches/{branch_id}/databases/{database_name}
PATCH
Updateprojectbranchdatabase — Update a database
/projects/{project_id}/branches/{branch_id}/databases/{database_name}
DELETE
Deleteprojectbranchdatabase — Delete a database
/projects/{project_id}/branches/{branch_id}/databases/{database_name}
GET
Listprojectbranchroles — List roles
/projects/{project_id}/branches/{branch_id}/roles
POST
Createprojectbranchrole — Create a role
/projects/{project_id}/branches/{branch_id}/roles
GET
Getprojectbranchrole — Retrieve role details
/projects/{project_id}/branches/{branch_id}/roles/{role_name}
DELETE
Deleteprojectbranchrole — Delete a role
/projects/{project_id}/branches/{branch_id}/roles/{role_name}
POST
Resetprojectbranchrolepassword — Reset role password
/projects/{project_id}/branches/{branch_id}/roles/{role_name}/reset_password
GET
Listprojectendpoints — List compute endpoints
/projects/{project_id}/endpoints
POST
Createprojectendpoint — Create a compute endpoint
/projects/{project_id}/endpoints
GET
Getprojectendpoint — Retrieve compute endpoint details
/projects/{project_id}/endpoints/{endpoint_id}
PATCH
Updateprojectendpoint — Update a compute endpoint
/projects/{project_id}/endpoints/{endpoint_id}
DELETE
Deleteprojectendpoint — Delete a compute endpoint
/projects/{project_id}/endpoints/{endpoint_id}
POST
Startprojectendpoint — Start a compute endpoint
/projects/{project_id}/endpoints/{endpoint_id}/start
POST
Suspendprojectendpoint — Suspend a compute endpoint
/projects/{project_id}/endpoints/{endpoint_id}/suspend
POST
Restartprojectendpoint — Restart a compute endpoint
/projects/{project_id}/endpoints/{endpoint_id}/restart
GET
Listprojectbranchendpoints — List branch endpoints
/projects/{project_id}/branches/{branch_id}/endpoints
GET
Listprojectoperations — List project operations
/projects/{project_id}/operations
GET
Getprojectoperation — Retrieve operation details
/projects/{project_id}/operations/{operation_id}
GET
Getconsumptionhistoryperaccount — Get account consumption metrics
/consumption_history/account
GET
Getconsumptionhistoryperproject — Get project consumption metrics
/consumption_history/projects
GET
Listapikeys — List API keys
/api_keys
POST
Createapikey — Create an API key
/api_keys
DELETE
Revokeapikey — Revoke an API key
/api_keys/{key_id}
GET
Getprojectbranchdataapi — Get Data API configuration
/projects/{project_id}/branches/{branch_id}/data-api
PUT
Updateprojectbranchdataapi — Update Data API configuration
/projects/{project_id}/branches/{branch_id}/data-api
GET
Getprojectbranchauth — Get Auth configuration
/projects/{project_id}/branches/{branch_id}/auth
PUT
Updateprojectbranchauth — Update Auth configuration
/projects/{project_id}/branches/{branch_id}/auth
GET
Listneonauthoauthproviders — List OAuth providers
/projects/{project_id}/branches/{branch_id}/auth/providers
POST
Createneonauthoauthprovider — Create an OAuth provider
/projects/{project_id}/branches/{branch_id}/auth/providers
PATCH
Updateneonauthoauthprovider — Update an OAuth provider
/projects/{project_id}/branches/{branch_id}/auth/providers/{provider_id}
DELETE
Deleteneonauthoauthprovider — Delete an OAuth provider
/projects/{project_id}/branches/{branch_id}/auth/providers/{provider_id}
GET
Getconnectionuri — Retrieve connection URI
/projects/{project_id}/connection_uri

MCP Tools

listprojects

List projects

read-only idempotent
createproject

Create a project

getproject

Retrieve project details

read-only idempotent
updateproject

Update a project

deleteproject

Delete a project

idempotent
listprojectbranches

List branches

read-only idempotent
createprojectbranch

Create a branch

getprojectbranch

Retrieve branch details

read-only idempotent
updateprojectbranch

Update a branch

deleteprojectbranch

Delete a branch

idempotent
restoreprojectbranch

Restore a branch

listprojectbranchdatabases

List databases

read-only idempotent
createprojectbranchdatabase

Create a database

getprojectbranchdatabase

Retrieve database details

read-only idempotent
updateprojectbranchdatabase

Update a database

deleteprojectbranchdatabase

Delete a database

idempotent
listprojectbranchroles

List roles

read-only idempotent
createprojectbranchrole

Create a role

getprojectbranchrole

Retrieve role details

read-only idempotent
deleteprojectbranchrole

Delete a role

idempotent
resetprojectbranchrolepassword

Reset role password

listprojectendpoints

List compute endpoints

read-only idempotent
createprojectendpoint

Create a compute endpoint

getprojectendpoint

Retrieve compute endpoint details

read-only idempotent
updateprojectendpoint

Update a compute endpoint

deleteprojectendpoint

Delete a compute endpoint

idempotent
startprojectendpoint

Start a compute endpoint

suspendprojectendpoint

Suspend a compute endpoint

restartprojectendpoint

Restart a compute endpoint

listprojectbranchendpoints

List branch endpoints

read-only idempotent
listprojectoperations

List project operations

read-only idempotent
getprojectoperation

Retrieve operation details

read-only idempotent
getconsumptionhistoryperaccount

Get account consumption metrics

read-only idempotent
getconsumptionhistoryperproject

Get project consumption metrics

read-only idempotent
listapikeys

List API keys

read-only idempotent
createapikey

Create an API key

revokeapikey

Revoke an API key

idempotent
getprojectbranchdataapi

Get Data API configuration

read-only idempotent
updateprojectbranchdataapi

Update Data API configuration

idempotent
getprojectbranchauth

Get Auth configuration

read-only idempotent
updateprojectbranchauth

Update Auth configuration

idempotent
listneonauthoauthproviders

List OAuth providers

read-only idempotent
createneonauthoauthprovider

Create an OAuth provider

updateneonauthoauthprovider

Update an OAuth provider

deleteneonauthoauthprovider

Delete an OAuth provider

idempotent
getconnectionuri

Retrieve connection URI

read-only idempotent

Capability Spec

neon-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Neon Management API
  description: The Neon Management API is a RESTful interface for programmatically managing Neon serverless Postgres resources.
    It allows developers to create and manage projects, branches, databases, roles, compute endpoints, and operations. The
    API supports everything available through the Neon Console, enabling automation of database infrastructure workflows.
    An OpenAPI 3.0 specification is available along with TypeScript, Python, and Go SDKs.
  tags:
  - Neon
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: neon
    baseUri: https://console.neon.tech/api/v2
    description: Neon Management API HTTP API.
    authentication:
      type: bearer
      token: '{{NEON_TOKEN}}'
    resources:
    - name: projects
      path: /projects
      operations:
      - name: listprojects
        method: GET
        description: List projects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createproject
        method: POST
        description: Create a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id
      path: /projects/{project_id}
      operations:
      - name: getproject
        method: GET
        description: Retrieve project details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateproject
        method: PATCH
        description: Update a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteproject
        method: DELETE
        description: Delete a project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches
      path: /projects/{project_id}/branches
      operations:
      - name: listprojectbranches
        method: GET
        description: List branches
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createprojectbranch
        method: POST
        description: Create a branch
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id
      path: /projects/{project_id}/branches/{branch_id}
      operations:
      - name: getprojectbranch
        method: GET
        description: Retrieve branch details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateprojectbranch
        method: PATCH
        description: Update a branch
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteprojectbranch
        method: DELETE
        description: Delete a branch
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-restore
      path: /projects/{project_id}/branches/{branch_id}/restore
      operations:
      - name: restoreprojectbranch
        method: POST
        description: Restore a branch
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-databases
      path: /projects/{project_id}/branches/{branch_id}/databases
      operations:
      - name: listprojectbranchdatabases
        method: GET
        description: List databases
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createprojectbranchdatabase
        method: POST
        description: Create a database
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-databases
      path: /projects/{project_id}/branches/{branch_id}/databases/{database_name}
      operations:
      - name: getprojectbranchdatabase
        method: GET
        description: Retrieve database details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateprojectbranchdatabase
        method: PATCH
        description: Update a database
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteprojectbranchdatabase
        method: DELETE
        description: Delete a database
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-roles
      path: /projects/{project_id}/branches/{branch_id}/roles
      operations:
      - name: listprojectbranchroles
        method: GET
        description: List roles
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createprojectbranchrole
        method: POST
        description: Create a role
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-roles-rol
      path: /projects/{project_id}/branches/{branch_id}/roles/{role_name}
      operations:
      - name: getprojectbranchrole
        method: GET
        description: Retrieve role details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteprojectbranchrole
        method: DELETE
        description: Delete a role
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-roles-rol
      path: /projects/{project_id}/branches/{branch_id}/roles/{role_name}/reset_password
      operations:
      - name: resetprojectbranchrolepassword
        method: POST
        description: Reset role password
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-endpoints
      path: /projects/{project_id}/endpoints
      operations:
      - name: listprojectendpoints
        method: GET
        description: List compute endpoints
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createprojectendpoint
        method: POST
        description: Create a compute endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-endpoints-endpoint-id
      path: /projects/{project_id}/endpoints/{endpoint_id}
      operations:
      - name: getprojectendpoint
        method: GET
        description: Retrieve compute endpoint details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateprojectendpoint
        method: PATCH
        description: Update a compute endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteprojectendpoint
        method: DELETE
        description: Delete a compute endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-endpoints-endpoint-id-start
      path: /projects/{project_id}/endpoints/{endpoint_id}/start
      operations:
      - name: startprojectendpoint
        method: POST
        description: Start a compute endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-endpoints-endpoint-id-suspen
      path: /projects/{project_id}/endpoints/{endpoint_id}/suspend
      operations:
      - name: suspendprojectendpoint
        method: POST
        description: Suspend a compute endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-endpoints-endpoint-id-restar
      path: /projects/{project_id}/endpoints/{endpoint_id}/restart
      operations:
      - name: restartprojectendpoint
        method: POST
        description: Restart a compute endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-endpoints
      path: /projects/{project_id}/branches/{branch_id}/endpoints
      operations:
      - name: listprojectbranchendpoints
        method: GET
        description: List branch endpoints
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-operations
      path: /projects/{project_id}/operations
      operations:
      - name: listprojectoperations
        method: GET
        description: List project operations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-operations-operation-id
      path: /projects/{project_id}/operations/{operation_id}
      operations:
      - name: getprojectoperation
        method: GET
        description: Retrieve operation details
        inputParameters:
        - name: operation_id
          in: path
          type: string
          required: true
          description: The operation ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: consumption-history-account
      path: /consumption_history/account
      operations:
      - name: getconsumptionhistoryperaccount
        method: GET
        description: Get account consumption metrics
        inputParameters:
        - name: from
          in: query
          type: string
          required: true
          description: Start date for the consumption period
        - name: to
          in: query
          type: string
          required: true
          description: End date for the consumption period
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: consumption-history-projects
      path: /consumption_history/projects
      operations:
      - name: getconsumptionhistoryperproject
        method: GET
        description: Get project consumption metrics
        inputParameters:
        - name: from
          in: query
          type: string
          required: true
          description: Start date for the consumption period
        - name: to
          in: query
          type: string
          required: true
          description: End date for the consumption period
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-keys
      path: /api_keys
      operations:
      - name: listapikeys
        method: GET
        description: List API keys
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createapikey
        method: POST
        description: Create an API key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-keys-key-id
      path: /api_keys/{key_id}
      operations:
      - name: revokeapikey
        method: DELETE
        description: Revoke an API key
        inputParameters:
        - name: key_id
          in: path
          type: integer
          required: true
          description: The API key ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-data-api
      path: /projects/{project_id}/branches/{branch_id}/data-api
      operations:
      - name: getprojectbranchdataapi
        method: GET
        description: Get Data API configuration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateprojectbranchdataapi
        method: PUT
        description: Update Data API configuration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-auth
      path: /projects/{project_id}/branches/{branch_id}/auth
      operations:
      - name: getprojectbranchauth
        method: GET
        description: Get Auth configuration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateprojectbranchauth
        method: PUT
        description: Update Auth configuration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-auth-prov
      path: /projects/{project_id}/branches/{branch_id}/auth/providers
      operations:
      - name: listneonauthoauthproviders
        method: GET
        description: List OAuth providers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createneonauthoauthprovider
        method: POST
        description: Create an OAuth provider
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-branches-branch-id-auth-prov
      path: /projects/{project_id}/branches/{branch_id}/auth/providers/{provider_id}
      operations:
      - name: updateneonauthoauthprovider
        method: PATCH
        description: Update an OAuth provider
        inputParameters:
        - name: provider_id
          in: path
          type: string
          required: true
          description: The OAuth provider ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteneonauthoauthprovider
        method: DELETE
        description: Delete an OAuth provider
        inputParameters:
        - name: provider_id
          in: path
          type: string
          required: true
          description: The OAuth provider ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-id-connection-uri
      path: /projects/{project_id}/connection_uri
      operations:
      - name: getconnectionuri
        method: GET
        description: Retrieve connection URI
        inputParameters:
        - name: branch_id
          in: query
          type: string
          description: The branch ID
        - name: endpoint_id
          in: query
          type: string
          description: The endpoint ID
        - name: database_name
          in: query
          type: string
          required: true
          description: The database name
        - name: role_name
          in: query
          type: string
          required: true
          description: The role name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: neon-rest
    description: REST adapter for Neon Management API.
    resources:
    - path: /projects
      name: listprojects
      operations:
      - method: GET
        name: listprojects
        description: List projects
        call: neon.listprojects
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects
      name: createproject
      operations:
      - method: POST
        name: createproject
        description: Create a project
        call: neon.createproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}
      name: getproject
      operations:
      - method: GET
        name: getproject
        description: Retrieve project details
        call: neon.getproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}
      name: updateproject
      operations:
      - method: PATCH
        name: updateproject
        description: Update a project
        call: neon.updateproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}
      name: deleteproject
      operations:
      - method: DELETE
        name: deleteproject
        description: Delete a project
        call: neon.deleteproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches
      name: listprojectbranches
      operations:
      - method: GET
        name: listprojectbranches
        description: List branches
        call: neon.listprojectbranches
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches
      name: createprojectbranch
      operations:
      - method: POST
        name: createprojectbranch
        description: Create a branch
        call: neon.createprojectbranch
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}
      name: getprojectbranch
      operations:
      - method: GET
        name: getprojectbranch
        description: Retrieve branch details
        call: neon.getprojectbranch
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}
      name: updateprojectbranch
      operations:
      - method: PATCH
        name: updateprojectbranch
        description: Update a branch
        call: neon.updateprojectbranch
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}
      name: deleteprojectbranch
      operations:
      - method: DELETE
        name: deleteprojectbranch
        description: Delete a branch
        call: neon.deleteprojectbranch
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/restore
      name: restoreprojectbranch
      operations:
      - method: POST
        name: restoreprojectbranch
        description: Restore a branch
        call: neon.restoreprojectbranch
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/databases
      name: listprojectbranchdatabases
      operations:
      - method: GET
        name: listprojectbranchdatabases
        description: List databases
        call: neon.listprojectbranchdatabases
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/databases
      name: createprojectbranchdatabase
      operations:
      - method: POST
        name: createprojectbranchdatabase
        description: Create a database
        call: neon.createprojectbranchdatabase
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/databases/{database_name}
      name: getprojectbranchdatabase
      operations:
      - method: GET
        name: getprojectbranchdatabase
        description: Retrieve database details
        call: neon.getprojectbranchdatabase
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/databases/{database_name}
      name: updateprojectbranchdatabase
      operations:
      - method: PATCH
        name: updateprojectbranchdatabase
        description: Update a database
        call: neon.updateprojectbranchdatabase
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/databases/{database_name}
      name: deleteprojectbranchdatabase
      operations:
      - method: DELETE
        name: deleteprojectbranchdatabase
        description: Delete a database
        call: neon.deleteprojectbranchdatabase
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/roles
      name: listprojectbranchroles
      operations:
      - method: GET
        name: listprojectbranchroles
        description: List roles
        call: neon.listprojectbranchroles
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/roles
      name: createprojectbranchrole
      operations:
      - method: POST
        name: createprojectbranchrole
        description: Create a role
        call: neon.createprojectbranchrole
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/roles/{role_name}
      name: getprojectbranchrole
      operations:
      - method: GET
        name: getprojectbranchrole
        description: Retrieve role details
        call: neon.getprojectbranchrole
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/roles/{role_name}
      name: deleteprojectbranchrole
      operations:
      - method: DELETE
        name: deleteprojectbranchrole
        description: Delete a role
        call: neon.deleteprojectbranchrole
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/roles/{role_name}/reset_password
      name: resetprojectbranchrolepassword
      operations:
      - method: POST
        name: resetprojectbranchrolepassword
        description: Reset role password
        call: neon.resetprojectbranchrolepassword
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints
      name: listprojectendpoints
      operations:
      - method: GET
        name: listprojectendpoints
        description: List compute endpoints
        call: neon.listprojectendpoints
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints
      name: createprojectendpoint
      operations:
      - method: POST
        name: createprojectendpoint
        description: Create a compute endpoint
        call: neon.createprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints/{endpoint_id}
      name: getprojectendpoint
      operations:
      - method: GET
        name: getprojectendpoint
        description: Retrieve compute endpoint details
        call: neon.getprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints/{endpoint_id}
      name: updateprojectendpoint
      operations:
      - method: PATCH
        name: updateprojectendpoint
        description: Update a compute endpoint
        call: neon.updateprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints/{endpoint_id}
      name: deleteprojectendpoint
      operations:
      - method: DELETE
        name: deleteprojectendpoint
        description: Delete a compute endpoint
        call: neon.deleteprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints/{endpoint_id}/start
      name: startprojectendpoint
      operations:
      - method: POST
        name: startprojectendpoint
        description: Start a compute endpoint
        call: neon.startprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints/{endpoint_id}/suspend
      name: suspendprojectendpoint
      operations:
      - method: POST
        name: suspendprojectendpoint
        description: Suspend a compute endpoint
        call: neon.suspendprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/endpoints/{endpoint_id}/restart
      name: restartprojectendpoint
      operations:
      - method: POST
        name: restartprojectendpoint
        description: Restart a compute endpoint
        call: neon.restartprojectendpoint
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/endpoints
      name: listprojectbranchendpoints
      operations:
      - method: GET
        name: listprojectbranchendpoints
        description: List branch endpoints
        call: neon.listprojectbranchendpoints
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/operations
      name: listprojectoperations
      operations:
      - method: GET
        name: listprojectoperations
        description: List project operations
        call: neon.listprojectoperations
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/operations/{operation_id}
      name: getprojectoperation
      operations:
      - method: GET
        name: getprojectoperation
        description: Retrieve operation details
        call: neon.getprojectoperation
        with:
          operation_id: rest.operation_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /consumption_history/account
      name: getconsumptionhistoryperaccount
      operations:
      - method: GET
        name: getconsumptionhistoryperaccount
        description: Get account consumption metrics
        call: neon.getconsumptionhistoryperaccount
        outputParameters:
        - type: object
          mapping: $.
    - path: /consumption_history/projects
      name: getconsumptionhistoryperproject
      operations:
      - method: GET
        name: getconsumptionhistoryperproject
        description: Get project consumption metrics
        call: neon.getconsumptionhistoryperproject
        outputParameters:
        - type: object
          mapping: $.
    - path: /api_keys
      name: listapikeys
      operations:
      - method: GET
        name: listapikeys
        description: List API keys
        call: neon.listapikeys
        outputParameters:
        - type: object
          mapping: $.
    - path: /api_keys
      name: createapikey
      operations:
      - method: POST
        name: createapikey
        description: Create an API key
        call: neon.createapikey
        outputParameters:
        - type: object
          mapping: $.
    - path: /api_keys/{key_id}
      name: revokeapikey
      operations:
      - method: DELETE
        name: revokeapikey
        description: Revoke an API key
        call: neon.revokeapikey
        with:
          key_id: rest.key_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/data-api
      name: getprojectbranchdataapi
      operations:
      - method: GET
        name: getprojectbranchdataapi
        description: Get Data API configuration
        call: neon.getprojectbranchdataapi
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/data-api
      name: updateprojectbranchdataapi
      operations:
      - method: PUT
        name: updateprojectbranchdataapi
        description: Update Data API configuration
        call: neon.updateprojectbranchdataapi
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/auth
      name: getprojectbranchauth
      operations:
      - method: GET
        name: getprojectbranchauth
        description: Get Auth configuration
        call: neon.getprojectbranchauth
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/auth
      name: updateprojectbranchauth
      operations:
      - method: PUT
        name: updateprojectbranchauth
        description: Update Auth configuration
        call: neon.updateprojectbranchauth
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/auth/providers
      name: listneonauthoauthproviders
      operations:
      - method: GET
        name: listneonauthoauthproviders
        description: List OAuth providers
        call: neon.listneonauthoauthproviders
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/auth/providers
      name: createneonauthoauthprovider
      operations:
      - method: POST
        name: createneonauthoauthprovider
        description: Create an OAuth provider
        call: neon.createneonauthoauthprovider
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/auth/providers/{provider_id}
      name: updateneonauthoauthprovider
      operations:
      - method: PATCH
        name: updateneonauthoauthprovider
        description: Update an OAuth provider
        call: neon.updateneonauthoauthprovider
        with:
          provider_id: rest.provider_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/branches/{branch_id}/auth/providers/{provider_id}
      name: deleteneonauthoauthprovider
      operations:
      - method: DELETE
        name: deleteneonauthoauthprovider
        description: Delete an OAuth provider
        call: neon.deleteneonauthoauthprovider
        with:
          provider_id: rest.provider_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project_id}/connection_uri
      name: getconnectionuri
      operations:
      - method: GET
        name: getconnectionuri
        description: Retrieve connection URI
        call: neon.getconnectionuri
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: neon-mcp
    transport: http
    description: MCP adapter for Neon Management API for AI agent use.
    tools:
    - name: listprojects
      description: List projects
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: neon.listprojects
      outputParameters:
      - type: object
        mapping: $.
    - name: createproject
      description: Create a project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: neon.createproject
      outputParameters:
      - type: object
        mapping: $.
    - name: getproject
      description: Retrieve project details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: neon.getproject
      outputParameters:
      - type: object
        mapping: $.
    - name: updateproject
      description: Update a project
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: neon.updateproject
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteproject
      description: Delete a project
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: neon.deleteproject
      outputParameters:
      - type: object
        mapping: $.
    - name: listprojectbranches
      description: List branches
      hints:
        readOnly:

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/neon/refs/heads/main/capabilities/neon-capability.yaml