ESRI ArcGIS · Capability

ESRI ArcGIS Platform API — Portal

ESRI ArcGIS Platform API — Portal. 5 operations. Lead operation: Get user profile. Self-contained Naftiko capability covering one Esri Arcgis business surface.

Run with Naftiko Esri ArcgisPortal

What You Can Do

GET
Getuser — Get user profile
/v1/community/users/{username}
GET
Getitem — Get portal item
/v1/content/items/{itemid}
GET
Getuseritems — List user content items
/v1/content/users/{username}/items
GET
Getportalself — Get portal information
/v1/portals/self
GET
Searchportal — Search portal content
/v1/search

MCP Tools

get-user-profile

Get user profile

read-only idempotent
get-portal-item

Get portal item

read-only idempotent
list-user-content-items

List user content items

read-only idempotent
get-portal-information

Get portal information

read-only idempotent
search-portal-content

Search portal content

read-only idempotent

Capability Spec

platform-portal.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: ESRI ArcGIS Platform API — Portal
  description: 'ESRI ArcGIS Platform API — Portal. 5 operations. Lead operation: Get user profile. Self-contained Naftiko
    capability covering one Esri Arcgis business surface.'
  tags:
  - Esri Arcgis
  - Portal
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ESRI_ARCGIS_API_KEY: ESRI_ARCGIS_API_KEY
capability:
  consumes:
  - type: http
    namespace: platform-portal
    baseUri: https://www.arcgis.com/sharing/rest
    description: ESRI ArcGIS Platform API — Portal business capability. Self-contained, no shared references.
    resources:
    - name: community-users-username
      path: /community/users/{username}
      operations:
      - name: getuser
        method: GET
        description: Get user profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          description: Username of the ArcGIS Online user
          required: true
        - name: f
          in: query
          type: string
    - name: content-items-itemId
      path: /content/items/{itemId}
      operations:
      - name: getitem
        method: GET
        description: Get portal item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: itemId
          in: path
          type: string
          description: Unique identifier of the portal item
          required: true
        - name: f
          in: query
          type: string
    - name: content-users-username-items
      path: /content/users/{username}/items
      operations:
      - name: getuseritems
        method: GET
        description: List user content items
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: username
          in: path
          type: string
          required: true
        - name: num
          in: query
          type: integer
          description: Number of results to return
        - name: start
          in: query
          type: integer
          description: Index of the first entry in the result set (1-based)
        - name: sortField
          in: query
          type: string
        - name: sortOrder
          in: query
          type: string
        - name: f
          in: query
          type: string
    - name: portals-self
      path: /portals/self
      operations:
      - name: getportalself
        method: GET
        description: Get portal information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: f
          in: query
          type: string
          description: Output format
        - name: token
          in: query
          type: string
          description: Authentication token (alternative to Authorization header)
    - name: search
      path: /search
      operations:
      - name: searchportal
        method: GET
        description: Search portal content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: q
          in: query
          type: string
          description: Query string using ArcGIS search syntax (e.g., "type:Feature Service owner:jsmith")
          required: true
        - name: num
          in: query
          type: integer
        - name: start
          in: query
          type: integer
        - name: sortField
          in: query
          type: string
        - name: sortOrder
          in: query
          type: string
        - name: f
          in: query
          type: string
    authentication:
      type: bearer
      token: '{{env.ESRI_ARCGIS_API_KEY}}'
  exposes:
  - type: rest
    namespace: platform-portal-rest
    port: 8080
    description: REST adapter for ESRI ArcGIS Platform API — Portal. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/community/users/{username}
      name: community-users-username
      description: REST surface for community-users-username.
      operations:
      - method: GET
        name: getuser
        description: Get user profile
        call: platform-portal.getuser
        with:
          username: rest.username
          f: rest.f
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/content/items/{itemid}
      name: content-items-itemid
      description: REST surface for content-items-itemId.
      operations:
      - method: GET
        name: getitem
        description: Get portal item
        call: platform-portal.getitem
        with:
          itemId: rest.itemId
          f: rest.f
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/content/users/{username}/items
      name: content-users-username-items
      description: REST surface for content-users-username-items.
      operations:
      - method: GET
        name: getuseritems
        description: List user content items
        call: platform-portal.getuseritems
        with:
          username: rest.username
          num: rest.num
          start: rest.start
          sortField: rest.sortField
          sortOrder: rest.sortOrder
          f: rest.f
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/portals/self
      name: portals-self
      description: REST surface for portals-self.
      operations:
      - method: GET
        name: getportalself
        description: Get portal information
        call: platform-portal.getportalself
        with:
          f: rest.f
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/search
      name: search
      description: REST surface for search.
      operations:
      - method: GET
        name: searchportal
        description: Search portal content
        call: platform-portal.searchportal
        with:
          q: rest.q
          num: rest.num
          start: rest.start
          sortField: rest.sortField
          sortOrder: rest.sortOrder
          f: rest.f
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: platform-portal-mcp
    port: 9090
    transport: http
    description: MCP adapter for ESRI ArcGIS Platform API — Portal. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-user-profile
      description: Get user profile
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-portal.getuser
      with:
        username: tools.username
        f: tools.f
      outputParameters:
      - type: object
        mapping: $.
    - name: get-portal-item
      description: Get portal item
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-portal.getitem
      with:
        itemId: tools.itemId
        f: tools.f
      outputParameters:
      - type: object
        mapping: $.
    - name: list-user-content-items
      description: List user content items
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-portal.getuseritems
      with:
        username: tools.username
        num: tools.num
        start: tools.start
        sortField: tools.sortField
        sortOrder: tools.sortOrder
        f: tools.f
      outputParameters:
      - type: object
        mapping: $.
    - name: get-portal-information
      description: Get portal information
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-portal.getportalself
      with:
        f: tools.f
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.
    - name: search-portal-content
      description: Search portal content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-portal.searchportal
      with:
        q: tools.q
        num: tools.num
        start: tools.start
        sortField: tools.sortField
        sortOrder: tools.sortOrder
        f: tools.f
      outputParameters:
      - type: object
        mapping: $.