naftiko: 1.0.0-alpha2 info: label: SimpleLegal Legal Operations Management description: Unified legal operations management capability combining SimpleLegal's matter management, eBilling, vendor management, spend analytics, and user administration APIs into a single workflow. Designed for in-house legal operations teams, general counsel offices, and finance integrators building legal-to-finance data pipelines. tags: - eBilling - Enterprise Legal Management - Finance Integration - Invoices - Legal Operations - Legal Spend Management - Matter Management - Vendors created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SIMPLELEGAL_USERNAME: SIMPLELEGAL_USERNAME SIMPLELEGAL_PASSWORD: SIMPLELEGAL_PASSWORD capability: consumes: - type: http namespace: simplelegal baseUri: https://app.simplelegal.com/api/v1 description: SimpleLegal REST API for enterprise legal management authentication: type: basic username: '{{env.SIMPLELEGAL_USERNAME}}' password: '{{env.SIMPLELEGAL_PASSWORD}}' resources: - name: matters path: /matters description: Legal matter management operations: - name: list-matters method: GET description: List all legal matters with pagination inputParameters: - name: page in: query type: integer required: false description: Page number - name: page_size in: query type: integer required: false description: Results per page (max 100) - name: status in: query type: string required: false description: Filter by status (open, closed, pending, on_hold) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-matter method: POST description: Create a new legal matter outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' matter_number: '{{tools.matter_number}}' status: '{{tools.status}}' practice_area: '{{tools.practice_area}}' description: '{{tools.description}}' client: '{{tools.client}}' budget: '{{tools.budget}}' - name: get-matter method: GET description: Get a specific legal matter by ID inputParameters: - name: id in: path type: string required: true description: Matter ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-matter method: PATCH description: Update fields on an existing legal matter inputParameters: - name: id in: path type: string required: true description: Matter ID outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: status: '{{tools.status}}' budget: '{{tools.budget}}' lead_attorney: '{{tools.lead_attorney}}' - name: invoices path: /invoices description: Legal invoice eBilling management operations: - name: list-invoices method: GET description: List all invoices with pagination inputParameters: - name: status in: query type: string required: false description: Filter by invoice status - name: matter_id in: query type: string required: false description: Filter by matter ID - name: vendor_id in: query type: string required: false description: Filter by vendor ID - name: page_size in: query type: integer required: false description: Results per page outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-invoice method: POST description: Submit a new invoice for processing outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: invoice_number: '{{tools.invoice_number}}' matter_id: '{{tools.matter_id}}' vendor_id: '{{tools.vendor_id}}' total_amount: '{{tools.total_amount}}' currency: '{{tools.currency}}' invoice_date: '{{tools.invoice_date}}' - name: get-invoice method: GET description: Get a specific invoice by ID inputParameters: - name: id in: path type: string required: true description: Invoice ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-invoice method: PATCH description: Update invoice status or fields inputParameters: - name: id in: path type: string required: true description: Invoice ID outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: status: '{{tools.status}}' approved_amount: '{{tools.approved_amount}}' - name: vendors path: /vendors description: Outside counsel and vendor management operations: - name: list-vendors method: GET description: List all vendors with pagination inputParameters: - name: status in: query type: string required: false description: Filter by vendor status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-vendor method: POST description: Create a new vendor outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' type: '{{tools.type}}' contact_email: '{{tools.contact_email}}' - name: get-vendor method: GET description: Get a specific vendor by ID inputParameters: - name: id in: path type: string required: true description: Vendor ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: cost-codes path: /cost-codes description: Billing and cost code management operations: - name: list-cost-codes method: GET description: List all cost codes outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users path: /users description: User account management operations: - name: list-users method: GET description: List all users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-user method: POST description: Create a new user outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: email: '{{tools.email}}' first_name: '{{tools.first_name}}' last_name: '{{tools.last_name}}' role: '{{tools.role}}' - name: payments path: /payments description: Invoice payment recording operations: - name: list-payments method: GET description: List all payments inputParameters: - name: invoice_id in: query type: string required: false description: Filter by invoice ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-payment method: POST description: Record a payment for an approved invoice outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: invoice_id: '{{tools.invoice_id}}' amount: '{{tools.amount}}' payment_date: '{{tools.payment_date}}' reference: '{{tools.reference}}' exposes: - type: rest port: 8080 namespace: simplelegal-legal-ops-api description: Unified REST API for SimpleLegal legal operations management workflows. resources: - path: /v1/matters name: matters description: Legal matter lifecycle management operations: - method: GET name: list-matters description: List all legal matters with filtering and pagination call: simplelegal.list-matters outputParameters: - type: object mapping: $. - method: POST name: create-matter description: Create a new legal matter call: simplelegal.create-matter outputParameters: - type: object mapping: $. - path: /v1/matters/{id} name: matter description: Individual matter management operations: - method: GET name: get-matter description: Get a specific legal matter by ID call: simplelegal.get-matter with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: update-matter description: Update matter fields (status, budget, counsel) call: simplelegal.update-matter with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/invoices name: invoices description: Legal invoice eBilling and approval workflow operations: - method: GET name: list-invoices description: List all invoices with filtering by status and matter call: simplelegal.list-invoices outputParameters: - type: object mapping: $. - method: POST name: create-invoice description: Submit a new invoice for eBilling review call: simplelegal.create-invoice outputParameters: - type: object mapping: $. - path: /v1/invoices/{id} name: invoice description: Individual invoice management operations: - method: GET name: get-invoice description: Get a specific invoice by ID call: simplelegal.get-invoice with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: update-invoice description: Update invoice status (approve, reject, hold) call: simplelegal.update-invoice with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/vendors name: vendors description: Outside counsel and legal vendor management operations: - method: GET name: list-vendors description: List all outside counsel and legal service vendors call: simplelegal.list-vendors outputParameters: - type: object mapping: $. - method: POST name: create-vendor description: Add a new outside counsel or vendor call: simplelegal.create-vendor outputParameters: - type: object mapping: $. - path: /v1/vendors/{id} name: vendor description: Individual vendor management operations: - method: GET name: get-vendor description: Get a specific vendor by ID call: simplelegal.get-vendor with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: update-vendor description: Update vendor information or status call: simplelegal.update-vendor with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/cost-codes name: cost-codes description: Billing and cost code catalog operations: - method: GET name: list-cost-codes description: List all configured billing and cost codes call: simplelegal.list-cost-codes outputParameters: - type: object mapping: $. - path: /v1/users name: users description: User account management operations: - method: GET name: list-users description: List all platform users call: simplelegal.list-users outputParameters: - type: object mapping: $. - method: POST name: create-user description: Create a new platform user call: simplelegal.create-user outputParameters: - type: object mapping: $. - path: /v1/payments name: payments description: Invoice payment recording operations: - method: GET name: list-payments description: List all recorded payments call: simplelegal.list-payments outputParameters: - type: object mapping: $. - method: POST name: create-payment description: Record a payment for an approved invoice call: simplelegal.create-payment outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: simplelegal-legal-ops-mcp transport: http description: MCP server for AI-assisted legal operations, matter tracking, invoice review, and spend analysis. tools: - name: list-matters description: List all legal matters with optional filtering by status or practice area hints: readOnly: true idempotent: true call: simplelegal.list-matters outputParameters: - type: object mapping: $. - name: create-matter description: Create a new legal matter with name, practice area, budget, and counsel assignment hints: readOnly: false idempotent: false call: simplelegal.create-matter outputParameters: - type: object mapping: $. - name: get-matter description: Get detailed information about a specific legal matter by ID hints: readOnly: true idempotent: true call: simplelegal.get-matter outputParameters: - type: object mapping: $. - name: update-matter description: Update matter status, budget, or attorney assignments hints: readOnly: false idempotent: true call: simplelegal.update-matter outputParameters: - type: object mapping: $. - name: list-invoices description: List legal invoices with filtering by status, matter, or vendor hints: readOnly: true idempotent: true call: simplelegal.list-invoices outputParameters: - type: object mapping: $. - name: create-invoice description: Submit a new legal invoice for eBilling review and approval hints: readOnly: false idempotent: false call: simplelegal.create-invoice outputParameters: - type: object mapping: $. - name: get-invoice description: Get details of a specific invoice including line items and approval status hints: readOnly: true idempotent: true call: simplelegal.get-invoice outputParameters: - type: object mapping: $. - name: approve-invoice description: Approve an invoice and set the approved payment amount hints: readOnly: false idempotent: true call: simplelegal.update-invoice outputParameters: - type: object mapping: $. - name: list-vendors description: List all outside counsel and legal service vendors hints: readOnly: true idempotent: true call: simplelegal.list-vendors outputParameters: - type: object mapping: $. - name: create-vendor description: Add a new outside counsel law firm or legal service provider hints: readOnly: false idempotent: false call: simplelegal.create-vendor outputParameters: - type: object mapping: $. - name: get-vendor description: Get information about a specific vendor or outside counsel firm hints: readOnly: true idempotent: true call: simplelegal.get-vendor outputParameters: - type: object mapping: $. - name: list-cost-codes description: List all billing and cost codes available for invoice categorization hints: readOnly: true idempotent: true call: simplelegal.list-cost-codes outputParameters: - type: object mapping: $. - name: list-users description: List all SimpleLegal platform users hints: readOnly: true idempotent: true call: simplelegal.list-users outputParameters: - type: object mapping: $. - name: create-user description: Create a new SimpleLegal platform user hints: readOnly: false idempotent: false call: simplelegal.create-user outputParameters: - type: object mapping: $. - name: list-payments description: List all recorded invoice payments hints: readOnly: true idempotent: true call: simplelegal.list-payments outputParameters: - type: object mapping: $. - name: record-payment description: Record a payment for an approved invoice to track disbursements hints: readOnly: false idempotent: false call: simplelegal.create-payment outputParameters: - type: object mapping: $.