LangChain · Capability

LangSmith — repos

LangSmith — repos. 9 operations. Lead operation: List Repos. Self-contained Naftiko capability covering one Langchain business surface.

Run with Naftiko Langchainrepos

What You Can Do

GET
Listreposapiv1reposget — List Repos
/v1/api/v1/repos
POST
Createrepoapiv1repospost — Create Repo
/v1/api/v1/repos
DELETE
Deletereposapiv1reposdelete — Delete Repos
/v1/api/v1/repos
POST
Optimizepromptjobapiv1reposoptimizejobpost — Optimize Prompt Job
/v1/api/v1/repos/optimize-job
GET
Listrepotagsapiv1repostagsget — List Repo Tags
/v1/api/v1/repos/tags
GET
Getrepoapiv1reposownerrepoget — Get Repo
/v1/api/v1/repos/{owner}/{repo}
PATCH
Updaterepoapiv1reposownerrepopatch — Update Repo
/v1/api/v1/repos/{owner}/{repo}
DELETE
Deleterepoapiv1reposownerrepodelete — Delete Repo
/v1/api/v1/repos/{owner}/{repo}
POST
Forkrepoapiv1reposownerrepoforkpost — Fork Repo
/v1/api/v1/repos/{owner}/{repo}/fork

MCP Tools

list-repos

List Repos

read-only idempotent
create-repo

Create Repo

delete-repos

Delete Repos

idempotent
optimize-prompt-job

Optimize Prompt Job

list-repo-tags

List Repo Tags

read-only idempotent
get-repo

Get Repo

read-only idempotent
update-repo

Update Repo

idempotent
delete-repo

Delete Repo

idempotent
fork-repo

Fork Repo

Capability Spec

langchain-repos.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: LangSmith — repos
  description: 'LangSmith — repos. 9 operations. Lead operation: List Repos. Self-contained Naftiko capability covering one
    Langchain business surface.'
  tags:
  - Langchain
  - repos
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    LANGCHAIN_API_KEY: LANGCHAIN_API_KEY
capability:
  consumes:
  - type: http
    namespace: langchain-repos
    baseUri: ''
    description: LangSmith — repos business capability. Self-contained, no shared references.
    resources:
    - name: api-v1-repos
      path: /api/v1/repos
      operations:
      - name: listreposapiv1reposget
        method: GET
        description: List Repos
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: with_latest_manifest
          in: query
          type: boolean
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        - name: tenant_handle
          in: query
          type: string
        - name: tenant_id
          in: query
          type: string
        - name: query
          in: query
          type: string
        - name: has_commits
          in: query
          type: string
        - name: tags
          in: query
          type: string
        - name: is_archived
          in: query
          type: string
        - name: is_public
          in: query
          type: string
        - name: upstream_repo_owner
          in: query
          type: string
        - name: upstream_repo_handle
          in: query
          type: string
        - name: tag_value_id
          in: query
          type: string
        - name: repo_type
          in: query
          type: string
        - name: repo_types
          in: query
          type: string
        - name: sort_field
          in: query
          type: string
        - name: sort_direction
          in: query
          type: string
      - name: createrepoapiv1repospost
        method: POST
        description: Create Repo
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletereposapiv1reposdelete
        method: DELETE
        description: Delete Repos
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: repo_ids
          in: query
          type: array
          required: true
    - name: api-v1-repos-optimize-job
      path: /api/v1/repos/optimize-job
      operations:
      - name: optimizepromptjobapiv1reposoptimizejobpost
        method: POST
        description: Optimize Prompt Job
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v1-repos-tags
      path: /api/v1/repos/tags
      operations:
      - name: listrepotagsapiv1repostagsget
        method: GET
        description: List Repo Tags
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        - name: tenant_handle
          in: query
          type: string
        - name: tenant_id
          in: query
          type: string
        - name: query
          in: query
          type: string
        - name: has_commits
          in: query
          type: string
        - name: tags
          in: query
          type: string
        - name: is_archived
          in: query
          type: string
        - name: is_public
          in: query
          type: string
        - name: upstream_repo_owner
          in: query
          type: string
        - name: upstream_repo_handle
          in: query
          type: string
        - name: tag_value_id
          in: query
          type: string
        - name: repo_type
          in: query
          type: string
        - name: repo_types
          in: query
          type: string
    - name: api-v1-repos-owner-repo
      path: /api/v1/repos/{owner}/{repo}
      operations:
      - name: getrepoapiv1reposownerrepoget
        method: GET
        description: Get Repo
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: repo
          in: path
          type: string
          required: true
      - name: updaterepoapiv1reposownerrepopatch
        method: PATCH
        description: Update Repo
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: repo
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleterepoapiv1reposownerrepodelete
        method: DELETE
        description: Delete Repo
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: repo
          in: path
          type: string
          required: true
    - name: api-v1-repos-owner-repo-fork
      path: /api/v1/repos/{owner}/{repo}/fork
      operations:
      - name: forkrepoapiv1reposownerrepoforkpost
        method: POST
        description: Fork Repo
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: repo
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.LANGCHAIN_API_KEY}}'
  exposes:
  - type: rest
    namespace: langchain-repos-rest
    port: 8080
    description: REST adapter for LangSmith — repos. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/api/v1/repos
      name: api-v1-repos
      description: REST surface for api-v1-repos.
      operations:
      - method: GET
        name: listreposapiv1reposget
        description: List Repos
        call: langchain-repos.listreposapiv1reposget
        with:
          with_latest_manifest: rest.with_latest_manifest
          limit: rest.limit
          offset: rest.offset
          tenant_handle: rest.tenant_handle
          tenant_id: rest.tenant_id
          query: rest.query
          has_commits: rest.has_commits
          tags: rest.tags
          is_archived: rest.is_archived
          is_public: rest.is_public
          upstream_repo_owner: rest.upstream_repo_owner
          upstream_repo_handle: rest.upstream_repo_handle
          tag_value_id: rest.tag_value_id
          repo_type: rest.repo_type
          repo_types: rest.repo_types
          sort_field: rest.sort_field
          sort_direction: rest.sort_direction
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createrepoapiv1repospost
        description: Create Repo
        call: langchain-repos.createrepoapiv1repospost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletereposapiv1reposdelete
        description: Delete Repos
        call: langchain-repos.deletereposapiv1reposdelete
        with:
          repo_ids: rest.repo_ids
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/repos/optimize-job
      name: api-v1-repos-optimize-job
      description: REST surface for api-v1-repos-optimize-job.
      operations:
      - method: POST
        name: optimizepromptjobapiv1reposoptimizejobpost
        description: Optimize Prompt Job
        call: langchain-repos.optimizepromptjobapiv1reposoptimizejobpost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/repos/tags
      name: api-v1-repos-tags
      description: REST surface for api-v1-repos-tags.
      operations:
      - method: GET
        name: listrepotagsapiv1repostagsget
        description: List Repo Tags
        call: langchain-repos.listrepotagsapiv1repostagsget
        with:
          limit: rest.limit
          offset: rest.offset
          tenant_handle: rest.tenant_handle
          tenant_id: rest.tenant_id
          query: rest.query
          has_commits: rest.has_commits
          tags: rest.tags
          is_archived: rest.is_archived
          is_public: rest.is_public
          upstream_repo_owner: rest.upstream_repo_owner
          upstream_repo_handle: rest.upstream_repo_handle
          tag_value_id: rest.tag_value_id
          repo_type: rest.repo_type
          repo_types: rest.repo_types
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/repos/{owner}/{repo}
      name: api-v1-repos-owner-repo
      description: REST surface for api-v1-repos-owner-repo.
      operations:
      - method: GET
        name: getrepoapiv1reposownerrepoget
        description: Get Repo
        call: langchain-repos.getrepoapiv1reposownerrepoget
        with:
          owner: rest.owner
          repo: rest.repo
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updaterepoapiv1reposownerrepopatch
        description: Update Repo
        call: langchain-repos.updaterepoapiv1reposownerrepopatch
        with:
          owner: rest.owner
          repo: rest.repo
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleterepoapiv1reposownerrepodelete
        description: Delete Repo
        call: langchain-repos.deleterepoapiv1reposownerrepodelete
        with:
          owner: rest.owner
          repo: rest.repo
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/repos/{owner}/{repo}/fork
      name: api-v1-repos-owner-repo-fork
      description: REST surface for api-v1-repos-owner-repo-fork.
      operations:
      - method: POST
        name: forkrepoapiv1reposownerrepoforkpost
        description: Fork Repo
        call: langchain-repos.forkrepoapiv1reposownerrepoforkpost
        with:
          owner: rest.owner
          repo: rest.repo
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: langchain-repos-mcp
    port: 9090
    transport: http
    description: MCP adapter for LangSmith — repos. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-repos
      description: List Repos
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: langchain-repos.listreposapiv1reposget
      with:
        with_latest_manifest: tools.with_latest_manifest
        limit: tools.limit
        offset: tools.offset
        tenant_handle: tools.tenant_handle
        tenant_id: tools.tenant_id
        query: tools.query
        has_commits: tools.has_commits
        tags: tools.tags
        is_archived: tools.is_archived
        is_public: tools.is_public
        upstream_repo_owner: tools.upstream_repo_owner
        upstream_repo_handle: tools.upstream_repo_handle
        tag_value_id: tools.tag_value_id
        repo_type: tools.repo_type
        repo_types: tools.repo_types
        sort_field: tools.sort_field
        sort_direction: tools.sort_direction
      outputParameters:
      - type: object
        mapping: $.
    - name: create-repo
      description: Create Repo
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: langchain-repos.createrepoapiv1repospost
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-repos
      description: Delete Repos
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: langchain-repos.deletereposapiv1reposdelete
      with:
        repo_ids: tools.repo_ids
      outputParameters:
      - type: object
        mapping: $.
    - name: optimize-prompt-job
      description: Optimize Prompt Job
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: langchain-repos.optimizepromptjobapiv1reposoptimizejobpost
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-repo-tags
      description: List Repo Tags
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: langchain-repos.listrepotagsapiv1repostagsget
      with:
        limit: tools.limit
        offset: tools.offset
        tenant_handle: tools.tenant_handle
        tenant_id: tools.tenant_id
        query: tools.query
        has_commits: tools.has_commits
        tags: tools.tags
        is_archived: tools.is_archived
        is_public: tools.is_public
        upstream_repo_owner: tools.upstream_repo_owner
        upstream_repo_handle: tools.upstream_repo_handle
        tag_value_id: tools.tag_value_id
        repo_type: tools.repo_type
        repo_types: tools.repo_types
      outputParameters:
      - type: object
        mapping: $.
    - name: get-repo
      description: Get Repo
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: langchain-repos.getrepoapiv1reposownerrepoget
      with:
        owner: tools.owner
        repo: tools.repo
      outputParameters:
      - type: object
        mapping: $.
    - name: update-repo
      description: Update Repo
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: langchain-repos.updaterepoapiv1reposownerrepopatch
      with:
        owner: tools.owner
        repo: tools.repo
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-repo
      description: Delete Repo
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: langchain-repos.deleterepoapiv1reposownerrepodelete
      with:
        owner: tools.owner
        repo: tools.repo
      outputParameters:
      - type: object
        mapping: $.
    - name: fork-repo
      description: Fork Repo
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: langchain-repos.forkrepoapiv1reposownerrepoforkpost
      with:
        owner: tools.owner
        repo: tools.repo
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.