Thomson Reuters Capabilities
Naftiko 0.5 capability definitions for Thomson Reuters - 100 capabilities showing integration workflows and service orchestrations.
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Searches for company regulatory filings.
naftiko: "0.5"
info:
label: "Company Filing Search"
description: "Searches for company regulatory filings."
tags:
- compliance
- research
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: get-company
description: "Searches for company regulatory filings."
inputParameters:
- name: entity_id
in: body
type: string
description: "The company filing search identifier."
call: "compliance-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: compliance-api
baseUri: "https://api.thomson-reuters.com/compliance/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: company
path: "/company/filing/search/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-company
method: GET
Retrieves financial fundamentals for a company from Refinitiv including revenue, earnings, market cap, and P/E ratio.
naftiko: "0.5"
info:
label: "Company Financial Data Retrieval"
description: "Retrieves financial fundamentals for a company from Refinitiv including revenue, earnings, market cap, and P/E ratio."
tags:
- data
- refinitiv
- financials
capability:
exposes:
- type: mcp
namespace: financial-data
port: 8080
tools:
- name: get-company-financials
description: "Retrieve financial fundamentals for a company."
inputParameters:
- name: ric
in: body
type: string
description: "Reuters Instrument Code."
call: "refinitiv.get-fundamentals"
with:
ric: "{{ric}}"
outputParameters:
- name: revenue
type: number
mapping: "$.revenue"
- name: net_income
type: number
mapping: "$.netIncome"
- name: market_cap
type: number
mapping: "$.marketCap"
- name: pe_ratio
type: number
mapping: "$.peRatio"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/fundamentals/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: fundamentals
path: "/companies/{{ric}}/financials"
inputParameters:
- name: ric
in: path
operations:
- name: get-fundamentals
method: GET
Screens an entity against sanctions lists, PEP databases, and adverse media using World-Check, logs findings in ServiceNow, and notifies the compliance officer via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Compliance Screening Pipeline"
description: "Screens an entity against sanctions lists, PEP databases, and adverse media using World-Check, logs findings in ServiceNow, and notifies the compliance officer via Microsoft Outlook."
tags:
- compliance
- screening
- world-check
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: compliance-screening
port: 8080
tools:
- name: screen-entity
description: "Screen an entity against sanctions, PEP, and adverse media databases."
inputParameters:
- name: entity_name
in: body
type: string
description: "Entity name to screen."
- name: entity_type
in: body
type: string
description: "Type (individual, organization)."
- name: country
in: body
type: string
description: "Country ISO code."
- name: compliance_officer_email
in: body
type: string
description: "Compliance officer email."
steps:
- name: run-screening
type: call
call: "worldcheck.screen"
with:
name: "{{entity_name}}"
type: "{{entity_type}}"
country: "{{country}}"
- name: log-results
type: call
call: "servicenow.create-record"
with:
table: "u_compliance_screening"
entity_name: "{{entity_name}}"
match_count: "{{run-screening.match_count}}"
risk_level: "{{run-screening.risk_level}}"
- name: notify-officer
type: call
call: "outlook.send-email"
with:
to: "{{compliance_officer_email}}"
subject: "Compliance Screening Result: {{entity_name}}"
body: "Screening complete for {{entity_name}}. Matches: {{run-screening.match_count}}. Risk: {{run-screening.risk_level}}. ServiceNow: {{log-results.sys_id}}."
consumes:
- type: http
namespace: worldcheck
baseUri: "https://api.worldcheck.thomsonreuters.com/v2"
authentication:
type: bearer
token: "$secrets.worldcheck_token"
resources:
- name: screening
path: "/cases/screeningRequest"
operations:
- name: screen
method: POST
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Queries employees due for compliance training from Workday, assigns training courses, creates ServiceNow tracking records, and sends reminder emails.
naftiko: "0.5"
info:
label: "Compliance Training Assignment Pipeline"
description: "Queries employees due for compliance training from Workday, assigns training courses, creates ServiceNow tracking records, and sends reminder emails."
tags:
- compliance
- training
- workday
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: compliance-training
port: 8080
tools:
- name: assign-compliance-training
description: "Assign compliance training to employees and track completion."
inputParameters:
- name: training_course
in: body
type: string
description: "Training course name."
- name: department
in: body
type: string
description: "Department for training assignment."
steps:
- name: get-employees
type: call
call: "workday.get-department-workers"
with:
department: "{{department}}"
- name: assign-training
type: call
call: "workday.assign-training"
with:
workers: "{{get-employees.workers}}"
course: "{{training_course}}"
- name: create-tracking
type: call
call: "servicenow.create-record"
with:
table: "u_training_assignments"
course: "{{training_course}}"
department: "{{department}}"
assigned_count: "{{assign-training.assigned_count}}"
- name: send-reminders
type: call
call: "outlook.send-email"
with:
to: "{{get-employees.emails}}"
subject: "Required: {{training_course}} - Compliance Training"
body: "You have been assigned the compliance training course: {{training_course}}. Please complete it within 30 days."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: department-workers
path: "/workers"
inputParameters:
- name: department
in: query
operations:
- name: get-department-workers
method: GET
- name: training
path: "/learning/assignments"
operations:
- name: assign-training
method: POST
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.thomson-reuters.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Queries content engagement metrics from Snowflake, refreshes the Power BI editorial dashboard, and sends a daily digest to editors via Microsoft Teams.
naftiko: "0.5"
info:
label: "Content Analytics Pipeline"
description: "Queries content engagement metrics from Snowflake, refreshes the Power BI editorial dashboard, and sends a daily digest to editors via Microsoft Teams."
tags:
- news
- analytics
- snowflake
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: content-analytics
port: 8080
tools:
- name: refresh-content-analytics
description: "Query content metrics, refresh dashboard, and send editorial digest."
inputParameters:
- name: pbi_dataset_id
in: body
type: string
description: "Power BI dataset ID."
- name: teams_webhook
in: body
type: string
description: "Teams webhook URL."
steps:
- name: get-metrics
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT content_type, article_count, total_views, avg_engagement FROM EDITORIAL.CONTENT_METRICS WHERE date = CURRENT_DATE"
- name: refresh-pbi
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{pbi_dataset_id}}"
- name: send-digest
type: call
call: "msteams.send-message"
with:
webhook_url: "{{teams_webhook}}"
text: "Daily content metrics refreshed. {{get-metrics.data}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: msteams
baseUri: "{{webhook_url}}"
authentication:
type: none
resources:
- name: webhook
path: ""
operations:
- name: send-message
method: POST
Uploads a contract to the TR contract intelligence platform for AI analysis, extracts key clauses and obligations, logs findings in Salesforce, and notifies legal counsel.
naftiko: "0.5"
info:
label: "Contract Analysis Pipeline"
description: "Uploads a contract to the TR contract intelligence platform for AI analysis, extracts key clauses and obligations, logs findings in Salesforce, and notifies legal counsel."
tags:
- legal
- contract-analysis
- ai
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: contract-intel
port: 8080
tools:
- name: analyze-contract
description: "Upload contract for AI analysis, extract clauses, and notify counsel."
inputParameters:
- name: contract_id
in: body
type: string
description: "Contract reference ID."
- name: document_uri
in: body
type: string
description: "URI of the contract document."
- name: sf_opportunity_id
in: body
type: string
description: "Salesforce opportunity ID."
- name: counsel_email
in: body
type: string
description: "Legal counsel email."
steps:
- name: analyze
type: call
call: "contract-intel.analyze-document"
with:
document_uri: "{{document_uri}}"
- name: update-sf
type: call
call: "salesforce.update-opportunity"
with:
opportunity_id: "{{sf_opportunity_id}}"
Contract_Risk__c: "{{analyze.overall_risk}}"
Key_Clauses__c: "{{analyze.key_clauses_summary}}"
- name: notify-counsel
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{counsel_email}}"
text: "Contract {{contract_id}} analyzed. Risk: {{analyze.overall_risk}}. Key obligations: {{analyze.obligations_count}}. Unusual clauses: {{analyze.unusual_clauses_count}}."
consumes:
- type: http
namespace: contract-intel
baseUri: "https://api.thomsonreuters.com/contract-intelligence/v1"
authentication:
type: bearer
token: "$secrets.contract_intel_token"
resources:
- name: analysis
path: "/analyze"
operations:
- name: analyze-document
method: POST
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: update-opportunity
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Orchestrates corporate tax return preparation: collects data from ONESOURCE, runs multi-state apportionment, generates the return, gets partner review in Salesforce, and submits for e-file.
naftiko: "0.5"
info:
label: "Corporate Tax Return Workflow"
description: "Orchestrates corporate tax return preparation: collects data from ONESOURCE, runs multi-state apportionment, generates the return, gets partner review in Salesforce, and submits for e-file."
tags:
- tax
- corporate
- onesource
- salesforce
- compliance
capability:
exposes:
- type: mcp
namespace: corporate-tax
port: 8080
tools:
- name: prepare-corporate-return
description: "Orchestrate full corporate tax return from data collection through e-filing."
inputParameters:
- name: client_id
in: body
type: string
description: "Corporate client ID."
- name: tax_year
in: body
type: string
description: "Tax year."
- name: sf_opportunity_id
in: body
type: string
description: "Salesforce engagement opportunity."
steps:
- name: collect-data
type: call
call: "onesource.get-client-data"
with:
client_id: "{{client_id}}"
tax_year: "{{tax_year}}"
- name: run-apportionment
type: call
call: "onesource.calculate-apportionment"
with:
client_id: "{{client_id}}"
tax_year: "{{tax_year}}"
- name: generate-return
type: call
call: "onesource.generate-return"
with:
client_id: "{{client_id}}"
tax_year: "{{tax_year}}"
form_type: "1120"
- name: update-sf
type: call
call: "salesforce.update-opportunity"
with:
opportunity_id: "{{sf_opportunity_id}}"
StageName: "Return Prepared"
Tax_Liability__c: "{{run-apportionment.total_liability}}"
- name: submit-efile
type: call
call: "onesource.submit-efile"
with:
client_id: "{{client_id}}"
tax_year: "{{tax_year}}"
form_type: "1120"
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: client-data
path: "/clients/{{client_id}}/data"
inputParameters:
- name: client_id
in: path
- name: tax_year
in: query
operations:
- name: get-client-data
method: GET
- name: apportionment
path: "/apportionment/calculate"
operations:
- name: calculate-apportionment
method: POST
- name: returns
path: "/returns/generate"
operations:
- name: generate-return
method: POST
- name: efile
path: "/efile/submit"
operations:
- name: submit-efile
method: POST
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: update-opportunity
method: PATCH
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a new TR customer is created, provisions them in Salesforce, opens a ServiceNow onboarding ticket, provisions product access, and sends a welcome email.
naftiko: "0.5"
info:
label: "Customer Onboarding Orchestrator"
description: "When a new TR customer is created, provisions them in Salesforce, opens a ServiceNow onboarding ticket, provisions product access, and sends a welcome email."
tags:
- customer-service
- onboarding
- salesforce
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: customer-onboarding
port: 8080
tools:
- name: onboard-customer
description: "Orchestrate new customer onboarding across all systems."
inputParameters:
- name: customer_name
in: body
type: string
description: "Customer organization name."
- name: contact_email
in: body
type: string
description: "Primary contact email."
- name: products
in: body
type: array
description: "List of product subscriptions."
steps:
- name: create-sf-account
type: call
call: "salesforce.create-account"
with:
Name: "{{customer_name}}"
Type: "Customer"
- name: provision-access
type: call
call: "entitlement.provision-products"
with:
customer_id: "{{create-sf-account.id}}"
products: "{{products}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New customer onboarding: {{customer_name}}"
category: "customer_onboarding"
description: "Products: {{products}}. Salesforce ID: {{create-sf-account.id}}."
- name: send-welcome
type: call
call: "outlook.send-email"
with:
to: "{{contact_email}}"
subject: "Welcome to Thomson Reuters"
body: "Welcome {{customer_name}}! Your product access has been provisioned. Onboarding reference: {{open-ticket.number}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account"
operations:
- name: create-account
method: POST
- type: http
namespace: entitlement
baseUri: "https://api.thomsonreuters.com/entitlement/v1"
authentication:
type: bearer
token: "$secrets.entitlement_token"
resources:
- name: provisioning
path: "/customers/{{customer_id}}/products"
inputParameters:
- name: customer_id
in: path
operations:
- name: provision-products
method: POST
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Checks upcoming subscription renewals in Salesforce, generates renewal quotes, sends renewal offers to customers, and creates Jira tasks for the sales team.
naftiko: "0.5"
info:
label: "Customer Subscription Renewal Pipeline"
description: "Checks upcoming subscription renewals in Salesforce, generates renewal quotes, sends renewal offers to customers, and creates Jira tasks for the sales team."
tags:
- customer-service
- subscriptions
- salesforce
- microsoft-outlook
- jira
capability:
exposes:
- type: mcp
namespace: renewals
port: 8080
tools:
- name: process-renewal
description: "Generate renewal quote, send offer, and create sales follow-up task."
inputParameters:
- name: sf_opportunity_id
in: body
type: string
description: "Salesforce opportunity ID for renewal."
- name: customer_email
in: body
type: string
description: "Customer contact email."
- name: renewal_amount
in: body
type: number
description: "Renewal amount."
- name: sales_rep_jira_id
in: body
type: string
description: "Jira assignee for follow-up."
steps:
- name: update-sf
type: call
call: "salesforce.update-opportunity"
with:
opportunity_id: "{{sf_opportunity_id}}"
StageName: "Renewal Sent"
Amount: "{{renewal_amount}}"
- name: send-offer
type: call
call: "outlook.send-email"
with:
to: "{{customer_email}}"
subject: "Thomson Reuters - Subscription Renewal"
body: "Your subscription is up for renewal. Renewal amount: ${{renewal_amount}}. Please contact your account manager to proceed."
- name: create-followup
type: call
call: "jira.create-issue"
with:
project_key: "SALES"
summary: "Follow up on renewal: {{sf_opportunity_id}}"
description: "Renewal offer sent to {{customer_email}}. Amount: ${{renewal_amount}}."
issue_type: "Task"
assignee: "{{sales_rep_jira_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: update-opportunity
method: PATCH
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
- type: http
namespace: jira
baseUri: "https://thomsonreuters.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries product usage metrics from Snowflake, identifies at-risk accounts with declining usage, updates Salesforce health scores, and alerts the customer success team in Slack.
naftiko: "0.5"
info:
label: "Data Usage Analytics Pipeline"
description: "Queries product usage metrics from Snowflake, identifies at-risk accounts with declining usage, updates Salesforce health scores, and alerts the customer success team in Slack."
tags:
- data
- analytics
- snowflake
- salesforce
- slack
- customer-success
capability:
exposes:
- type: mcp
namespace: usage-analytics
port: 8080
tools:
- name: analyze-product-usage
description: "Analyze product usage, update account health, and alert customer success."
inputParameters:
- name: product_name
in: body
type: string
description: "Product name to analyze."
- name: decline_threshold
in: body
type: number
description: "Usage decline percentage threshold."
- name: slack_channel
in: body
type: string
description: "Slack channel for CS alerts."
steps:
- name: query-usage
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT account_id, account_name, current_usage, prior_usage, pct_change FROM ANALYTICS.PRODUCT_USAGE WHERE product = '{{product_name}}' AND pct_change <= -{{decline_threshold}}"
- name: update-sf-health
type: call
call: "salesforce.update-accounts-batch"
with:
accounts: "{{query-usage.data}}"
field: "Health_Score__c"
value: "At Risk"
- name: alert-cs
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Usage alert: {{query-usage.row_count}} accounts with >{{decline_threshold}}% usage decline for {{product_name}}. Health scores updated in Salesforce."
consumes:
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: composite
path: "/composite/sobjects"
operations:
- name: update-accounts-batch
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
When a new TR employee is created in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "When a new TR employee is created in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new employee onboarding across ServiceNow, SharePoint, and Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date."
- name: department
in: body
type: string
description: "Department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Thomson Reuters, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Retrieves Environmental, Social, and Governance scores for a company from Refinitiv ESG data. Used by investors and compliance analysts.
naftiko: "0.5"
info:
label: "ESG Data Retrieval"
description: "Retrieves Environmental, Social, and Governance scores for a company from Refinitiv ESG data. Used by investors and compliance analysts."
tags:
- data
- refinitiv
- esg
- sustainability
capability:
exposes:
- type: mcp
namespace: esg-data
port: 8080
tools:
- name: get-esg-scores
description: "Retrieve ESG scores for a company."
inputParameters:
- name: ric
in: body
type: string
description: "Reuters Instrument Code."
call: "refinitiv.get-esg"
with:
ric: "{{ric}}"
outputParameters:
- name: esg_score
type: number
mapping: "$.esgScore"
- name: environmental
type: number
mapping: "$.environmentalScore"
- name: social
type: number
mapping: "$.socialScore"
- name: governance
type: number
mapping: "$.governanceScore"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/environmental-social-governance/v2"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: esg
path: "/views/scores"
inputParameters:
- name: ric
in: query
operations:
- name: get-esg
method: GET
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.thomson-reuters.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Retrieves legal matter details from HighQ including participants, status, and document count.
naftiko: "0.5"
info:
label: "HighQ Matter Viewer"
description: "Retrieves legal matter details from HighQ including participants, status, and document count."
tags:
- legal
- highq
- matter-management
capability:
exposes:
- type: mcp
namespace: matter-viewer
port: 8080
tools:
- name: get-matter
description: "Retrieve legal matter details from HighQ."
inputParameters:
- name: matter_id
in: body
type: string
description: "HighQ matter ID."
call: "highq.get-matter"
with:
matter_id: "{{matter_id}}"
outputParameters:
- name: matter_name
type: string
mapping: "$.matterName"
- name: status
type: string
mapping: "$.status"
- name: document_count
type: integer
mapping: "$.documentCount"
consumes:
- type: http
namespace: highq
baseUri: "https://thomsonreuters.highq.com/api/v1"
authentication:
type: bearer
token: "$secrets.highq_token"
resources:
- name: matters
path: "/matters/{{matter_id}}"
inputParameters:
- name: matter_id
in: path
operations:
- name: get-matter
method: GET
Retrieves historical price data for a financial instrument from Refinitiv over a specified date range. Used by quantitative analysts and researchers.
naftiko: "0.5"
info:
label: "Historical Market Data Retrieval"
description: "Retrieves historical price data for a financial instrument from Refinitiv over a specified date range. Used by quantitative analysts and researchers."
tags:
- data
- refinitiv
- market-data
- historical
capability:
exposes:
- type: mcp
namespace: historical-data
port: 8080
tools:
- name: get-historical-prices
description: "Retrieve historical price data for a financial instrument."
inputParameters:
- name: ric
in: body
type: string
description: "Reuters Instrument Code."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD."
call: "refinitiv.get-historical"
with:
ric: "{{ric}}"
start: "{{start_date}}"
end: "{{end_date}}"
outputParameters:
- name: prices
type: array
mapping: "$.data"
- name: count
type: integer
mapping: "$.count"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/historical-pricing/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: historical
path: "/views/interday-summaries/{{ric}}"
inputParameters:
- name: ric
in: path
- name: start
in: query
- name: end
in: query
operations:
- name: get-historical
method: GET
Calculates indirect tax (VAT/GST/sales tax) for a transaction using ONESOURCE Indirect Tax. Returns tax amount, rate, and jurisdiction breakdown.
naftiko: "0.5"
info:
label: "Indirect Tax Determination"
description: "Calculates indirect tax (VAT/GST/sales tax) for a transaction using ONESOURCE Indirect Tax. Returns tax amount, rate, and jurisdiction breakdown."
tags:
- tax
- indirect-tax
- onesource
capability:
exposes:
- type: mcp
namespace: indirect-tax
port: 8080
tools:
- name: calculate-indirect-tax
description: "Calculate indirect tax for a transaction."
inputParameters:
- name: ship_from
in: body
type: string
description: "Ship-from address or jurisdiction."
- name: ship_to
in: body
type: string
description: "Ship-to address or jurisdiction."
- name: amount
in: body
type: number
description: "Transaction amount."
- name: product_code
in: body
type: string
description: "Product/service tax code."
call: "onesource.calculate-tax"
with:
ship_from: "{{ship_from}}"
ship_to: "{{ship_to}}"
amount: "{{amount}}"
product_code: "{{product_code}}"
outputParameters:
- name: total_tax
type: number
mapping: "$.totalTax"
- name: effective_rate
type: number
mapping: "$.effectiveRate"
- name: jurisdictions
type: array
mapping: "$.jurisdictionBreakdown"
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: tax-calculation
path: "/indirect-tax/calculate"
operations:
- name: calculate-tax
method: POST
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Jira issue by key. Used by project and product teams.
naftiko: "0.5"
info:
label: "Jira Issue Viewer"
description: "Retrieves a Jira issue by key. Used by project and product teams."
tags:
- project-management
- jira
capability:
exposes:
- type: mcp
namespace: pm-lookup
port: 8080
tools:
- name: get-jira-issue
description: "Look up a Jira issue by key."
inputParameters:
- name: issue_key
in: body
type: string
description: "Jira issue key."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
outputParameters:
- name: summary
type: string
mapping: "$.fields.summary"
- name: status
type: string
mapping: "$.fields.status.name"
- name: assignee
type: string
mapping: "$.fields.assignee.displayName"
consumes:
- type: http
namespace: jira
baseUri: "https://thomsonreuters.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.thomson-reuters.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries legal analytics data from Snowflake covering case outcomes, judge statistics, and litigation trends, and publishes the report to SharePoint for the legal research team.
naftiko: "0.5"
info:
label: "Legal Analytics Report Generator"
description: "Queries legal analytics data from Snowflake covering case outcomes, judge statistics, and litigation trends, and publishes the report to SharePoint for the legal research team."
tags:
- legal
- analytics
- snowflake
- sharepoint
capability:
exposes:
- type: mcp
namespace: legal-analytics
port: 8080
tools:
- name: generate-legal-analytics
description: "Generate legal analytics report and publish to SharePoint."
inputParameters:
- name: jurisdiction
in: body
type: string
description: "Jurisdiction for analysis."
- name: case_type
in: body
type: string
description: "Type of cases to analyze."
- name: sharepoint_site
in: body
type: string
description: "SharePoint site ID."
steps:
- name: query-analytics
type: call
call: "snowflake.execute-query"
with:
statement: "SELECT judge, case_count, avg_duration_days, plaintiff_win_rate FROM LEGAL.CASE_ANALYTICS WHERE jurisdiction = '{{jurisdiction}}' AND case_type = '{{case_type}}'"
- name: upload-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "{{sharepoint_site}}"
folder_path: "LegalAnalytics/{{jurisdiction}}"
file_name: "analytics_{{case_type}}.json"
consumes:
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
Searches for legal citations by case or statute.
naftiko: "0.5"
info:
label: "Legal Citation Search"
description: "Searches for legal citations by case or statute."
tags:
- legal
- research
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: get-legal
description: "Searches for legal citations by case or statute."
inputParameters:
- name: entity_id
in: body
type: string
description: "The legal citation search identifier."
call: "legal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: legal-api
baseUri: "https://api.thomson-reuters.com/legal/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: legal
path: "/legal/citation/search/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-legal
method: GET
Uploads a legal document to HighQ, indexes it in the document management system, creates a Jira task for review, and notifies the legal team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Legal Document Management Pipeline"
description: "Uploads a legal document to HighQ, indexes it in the document management system, creates a Jira task for review, and notifies the legal team via Microsoft Teams."
tags:
- legal
- document-management
- highq
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal-docs
port: 8080
tools:
- name: manage-legal-document
description: "Upload, index, and route a legal document for review."
inputParameters:
- name: document_title
in: body
type: string
description: "Document title."
- name: matter_id
in: body
type: string
description: "Legal matter ID."
- name: document_content
in: body
type: string
description: "Document content or URI."
- name: reviewer_email
in: body
type: string
description: "Reviewer email."
steps:
- name: upload-doc
type: call
call: "highq.upload-document"
with:
matter_id: "{{matter_id}}"
title: "{{document_title}}"
content: "{{document_content}}"
- name: create-review-task
type: call
call: "jira.create-issue"
with:
project_key: "LEGAL"
summary: "Review: {{document_title}}"
description: "Document uploaded to matter {{matter_id}}. Document ID: {{upload-doc.document_id}}."
issue_type: "Task"
- name: notify-reviewer
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{reviewer_email}}"
text: "Legal document '{{document_title}}' uploaded to matter {{matter_id}}. Review task: {{create-review-task.key}}."
consumes:
- type: http
namespace: highq
baseUri: "https://thomsonreuters.highq.com/api/v1"
authentication:
type: bearer
token: "$secrets.highq_token"
resources:
- name: documents
path: "/matters/{{matter_id}}/documents"
inputParameters:
- name: matter_id
in: path
operations:
- name: upload-document
method: POST
- type: http
namespace: jira
baseUri: "https://thomsonreuters.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Issues a legal hold notification to custodians: creates a hold in the legal hold system, sends notifications to custodians via email, and logs acknowledgments in ServiceNow.
naftiko: "0.5"
info:
label: "Legal Hold Notification Pipeline"
description: "Issues a legal hold notification to custodians: creates a hold in the legal hold system, sends notifications to custodians via email, and logs acknowledgments in ServiceNow."
tags:
- legal
- litigation-hold
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: legal-hold
port: 8080
tools:
- name: issue-legal-hold
description: "Issue a legal hold and notify custodians."
inputParameters:
- name: matter_id
in: body
type: string
description: "Legal matter ID."
- name: hold_name
in: body
type: string
description: "Legal hold name."
- name: custodian_emails
in: body
type: array
description: "List of custodian email addresses."
steps:
- name: create-hold
type: call
call: "legalhold.create"
with:
matter_id: "{{matter_id}}"
name: "{{hold_name}}"
- name: notify-custodians
type: call
call: "outlook.send-email"
with:
to: "{{custodian_emails}}"
subject: "Legal Hold Notice - {{hold_name}}"
body: "You are a custodian in legal matter {{matter_id}}. Preserve all documents related to {{hold_name}}. Do not delete any materials."
- name: log-hold
type: call
call: "servicenow.create-record"
with:
table: "u_legal_holds"
matter_id: "{{matter_id}}"
hold_name: "{{hold_name}}"
status: "active"
consumes:
- type: http
namespace: legalhold
baseUri: "https://api.thomsonreuters.com/legal-hold/v1"
authentication:
type: bearer
token: "$secrets.legalhold_token"
resources:
- name: holds
path: "/holds"
operations:
- name: create
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Orchestrates legal info workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 1"
description: "Orchestrates legal info workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-001
description: "Orchestrates legal info workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates legal info workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 2"
description: "Orchestrates legal info workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-002
description: "Orchestrates legal info workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves legal info operational data for workflow 3.
naftiko: "0.5"
info:
label: "Legal Info Data Query 3"
description: "Retrieves legal info operational data for workflow 3."
tags:
- legal
- operations
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: get-data-3
description: "Query legal info data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "legal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: legal-api
baseUri: "https://api.thomson-reuters.com/legal-info/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates legal info workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 4"
description: "Orchestrates legal info workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-004
description: "Orchestrates legal info workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates legal info workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 5"
description: "Orchestrates legal info workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-005
description: "Orchestrates legal info workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves legal info operational data for workflow 6.
naftiko: "0.5"
info:
label: "Legal Info Data Query 6"
description: "Retrieves legal info operational data for workflow 6."
tags:
- legal
- operations
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: get-data-6
description: "Query legal info data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "legal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: legal-api
baseUri: "https://api.thomson-reuters.com/legal-info/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates legal info workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 7"
description: "Orchestrates legal info workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-007
description: "Orchestrates legal info workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates legal info workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 8"
description: "Orchestrates legal info workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-008
description: "Orchestrates legal info workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves legal info operational data for workflow 9.
naftiko: "0.5"
info:
label: "Legal Info Data Query 9"
description: "Retrieves legal info operational data for workflow 9."
tags:
- legal
- operations
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: get-data-9
description: "Query legal info data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "legal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: legal-api
baseUri: "https://api.thomson-reuters.com/legal-info/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates legal info workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 10"
description: "Orchestrates legal info workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-010
description: "Orchestrates legal info workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates legal info workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 11"
description: "Orchestrates legal info workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-011
description: "Orchestrates legal info workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves legal info operational data for workflow 12.
naftiko: "0.5"
info:
label: "Legal Info Data Query 12"
description: "Retrieves legal info operational data for workflow 12."
tags:
- legal
- operations
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: get-data-12
description: "Query legal info data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "legal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: legal-api
baseUri: "https://api.thomson-reuters.com/legal-info/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates legal info workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 13"
description: "Orchestrates legal info workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-013
description: "Orchestrates legal info workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates legal info workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Legal Info Workflow 14"
description: "Orchestrates legal info workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- legal
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: run-legal-info-workflow-014
description: "Orchestrates legal info workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Legal Info Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves legal info operational data for workflow 15.
naftiko: "0.5"
info:
label: "Legal Info Data Query 15"
description: "Retrieves legal info operational data for workflow 15."
tags:
- legal
- operations
capability:
exposes:
- type: mcp
namespace: legal
port: 8080
tools:
- name: get-data-15
description: "Query legal info data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "legal-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: legal-api
baseUri: "https://api.thomson-reuters.com/legal-info/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Extracts time entries from the legal practice management system, generates invoices, submits for client approval in Salesforce, and emails the invoice to the client.
naftiko: "0.5"
info:
label: "Legal Matter Billing Pipeline"
description: "Extracts time entries from the legal practice management system, generates invoices, submits for client approval in Salesforce, and emails the invoice to the client."
tags:
- legal
- billing
- salesforce
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: legal-billing
port: 8080
tools:
- name: generate-matter-invoice
description: "Extract time entries, generate invoice, seek approval, and deliver to client."
inputParameters:
- name: matter_id
in: body
type: string
description: "Legal matter ID."
- name: billing_period
in: body
type: string
description: "Billing period."
- name: client_email
in: body
type: string
description: "Client email for invoice delivery."
- name: sf_opportunity_id
in: body
type: string
description: "Salesforce opportunity ID."
steps:
- name: get-time-entries
type: call
call: "practice-mgmt.get-time-entries"
with:
matter_id: "{{matter_id}}"
period: "{{billing_period}}"
- name: generate-invoice
type: call
call: "practice-mgmt.generate-invoice"
with:
matter_id: "{{matter_id}}"
time_entries: "{{get-time-entries.entries}}"
- name: update-sf
type: call
call: "salesforce.update-opportunity"
with:
opportunity_id: "{{sf_opportunity_id}}"
Invoice_Amount__c: "{{generate-invoice.total_amount}}"
Invoice_Status__c: "Sent"
- name: send-invoice
type: call
call: "outlook.send-email"
with:
to: "{{client_email}}"
subject: "Thomson Reuters - Invoice for Matter {{matter_id}}"
body: "Please find your invoice for the period {{billing_period}}. Total: ${{generate-invoice.total_amount}}. Invoice #: {{generate-invoice.invoice_number}}."
consumes:
- type: http
namespace: practice-mgmt
baseUri: "https://api.thomsonreuters.com/practice-management/v1"
authentication:
type: bearer
token: "$secrets.practice_mgmt_token"
resources:
- name: time-entries
path: "/matters/{{matter_id}}/time-entries"
inputParameters:
- name: matter_id
in: path
- name: period
in: query
operations:
- name: get-time-entries
method: GET
- name: invoices
path: "/invoices"
operations:
- name: generate-invoice
method: POST
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity/{{opportunity_id}}"
inputParameters:
- name: opportunity_id
in: path
operations:
- name: update-opportunity
method: PATCH
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Searches Westlaw for case law by citation or keyword and returns case summary, holding, and full text link. Used by legal professionals for research.
naftiko: "0.5"
info:
label: "Legal Research Document Retrieval"
description: "Searches Westlaw for case law by citation or keyword and returns case summary, holding, and full text link. Used by legal professionals for research."
tags:
- legal
- westlaw
- research
capability:
exposes:
- type: mcp
namespace: legal-research
port: 8080
tools:
- name: search-case-law
description: "Search Westlaw for case law by citation or keyword."
inputParameters:
- name: query
in: body
type: string
description: "Search query or citation."
- name: jurisdiction
in: body
type: string
description: "Jurisdiction filter."
call: "westlaw.search-cases"
with:
query: "{{query}}"
jurisdiction: "{{jurisdiction}}"
outputParameters:
- name: results
type: array
mapping: "$.cases"
- name: total_count
type: integer
mapping: "$.totalCount"
consumes:
- type: http
namespace: westlaw
baseUri: "https://api.westlaw.com/v1"
authentication:
type: bearer
token: "$secrets.westlaw_token"
resources:
- name: cases
path: "/search"
inputParameters:
- name: query
in: query
- name: jurisdiction
in: query
operations:
- name: search-cases
method: GET
Retrieves historical market data time series.
naftiko: "0.5"
info:
label: "Market Data Time Series"
description: "Retrieves historical market data time series."
tags:
- finance
- analytics
capability:
exposes:
- type: mcp
namespace: finance
port: 8080
tools:
- name: get-market
description: "Retrieves historical market data time series."
inputParameters:
- name: entity_id
in: body
type: string
description: "The market data time series identifier."
call: "finance-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: finance-api
baseUri: "https://api.thomson-reuters.com/finance/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: market
path: "/market/data/time/series/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-market
method: GET
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends an email via Microsoft Outlook. Used across workflows for notifications.
naftiko: "0.5"
info:
label: "Microsoft Outlook Email Sender"
description: "Sends an email via Microsoft Outlook. Used across workflows for notifications."
tags:
- notification
- microsoft-outlook
- email
capability:
exposes:
- type: mcp
namespace: email-sender
port: 8080
tools:
- name: send-email
description: "Send an email via Outlook."
inputParameters:
- name: to
in: body
type: string
description: "Recipient."
- name: subject
in: body
type: string
description: "Subject."
- name: body
in: body
type: string
description: "Body."
call: "outlook.send-email"
with:
to: "{{to}}"
subject: "{{subject}}"
body: "{{body}}"
outputParameters:
- name: message_id
type: string
mapping: "$.id"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.thomson-reuters.com/communications/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Monitors Reuters for breaking news on specified topics, evaluates relevance, and sends real-time alerts to a Slack channel for editorial teams.
naftiko: "0.5"
info:
label: "News Alert Monitor"
description: "Monitors Reuters for breaking news on specified topics, evaluates relevance, and sends real-time alerts to a Slack channel for editorial teams."
tags:
- news
- reuters
- monitoring
- slack
capability:
exposes:
- type: mcp
namespace: news-alerts
port: 8080
tools:
- name: monitor-news-alerts
description: "Check for breaking news on topics and alert via Slack."
inputParameters:
- name: topics
in: body
type: string
description: "Comma-separated list of topics."
- name: slack_channel
in: body
type: string
description: "Slack channel for alerts."
steps:
- name: get-breaking
type: call
call: "reuters.get-breaking-news"
with:
topics: "{{topics}}"
- name: alert-team
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "BREAKING NEWS: {{get-breaking.headline}} - {{get-breaking.summary}}"
consumes:
- type: http
namespace: reuters
baseUri: "https://api.reuters.com/v2"
authentication:
type: bearer
token: "$secrets.reuters_token"
resources:
- name: breaking
path: "/articles/breaking"
inputParameters:
- name: topics
in: query
operations:
- name: get-breaking-news
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves a tax client profile from ONESOURCE including entity structure, filing jurisdictions, and tax year status.
naftiko: "0.5"
info:
label: "ONESOURCE Tax Client Viewer"
description: "Retrieves a tax client profile from ONESOURCE including entity structure, filing jurisdictions, and tax year status."
tags:
- tax
- onesource
- client-management
capability:
exposes:
- type: mcp
namespace: tax-client
port: 8080
tools:
- name: get-tax-client
description: "Retrieve tax client profile from ONESOURCE."
inputParameters:
- name: client_id
in: body
type: string
description: "Tax client ID."
call: "onesource.get-client"
with:
client_id: "{{client_id}}"
outputParameters:
- name: name
type: string
mapping: "$.clientName"
- name: entity_type
type: string
mapping: "$.entityType"
- name: jurisdictions
type: array
mapping: "$.filingJurisdictions"
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: clients
path: "/clients/{{client_id}}"
inputParameters:
- name: client_id
in: path
operations:
- name: get-client
method: GET
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.thomson-reuters.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Triggers a refresh on a Power BI dataset. Used to keep dashboards current.
naftiko: "0.5"
info:
label: "Power BI Dataset Refresher"
description: "Triggers a refresh on a Power BI dataset. Used to keep dashboards current."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: bi-refresh
port: 8080
tools:
- name: refresh-pbi-dataset
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
outputParameters:
- name: request_id
type: string
mapping: "$.requestId"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Searches Practical Law for legal templates, practice notes, and standard documents by topic.
naftiko: "0.5"
info:
label: "Practical Law Document Search"
description: "Searches Practical Law for legal templates, practice notes, and standard documents by topic."
tags:
- legal
- practical-law
- templates
capability:
exposes:
- type: mcp
namespace: practical-law
port: 8080
tools:
- name: search-practical-law
description: "Search Practical Law for legal templates and practice notes."
inputParameters:
- name: query
in: body
type: string
description: "Search query."
- name: content_type
in: body
type: string
description: "Content type (template, practice_note, standard_document)."
call: "practicallaw.search"
with:
query: "{{query}}"
type: "{{content_type}}"
outputParameters:
- name: results
type: array
mapping: "$.documents"
- name: total
type: integer
mapping: "$.totalCount"
consumes:
- type: http
namespace: practicallaw
baseUri: "https://api.practicallaw.thomsonreuters.com/v1"
authentication:
type: bearer
token: "$secrets.practicallaw_token"
resources:
- name: search
path: "/search"
inputParameters:
- name: query
in: query
- name: type
in: query
operations:
- name: search
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a customer's current product entitlements and subscription status from the entitlement system.
naftiko: "0.5"
info:
label: "Product Entitlement Viewer"
description: "Retrieves a customer's current product entitlements and subscription status from the entitlement system."
tags:
- customer-service
- entitlements
- subscriptions
capability:
exposes:
- type: mcp
namespace: entitlements
port: 8080
tools:
- name: get-entitlements
description: "Retrieve customer product entitlements."
inputParameters:
- name: customer_id
in: body
type: string
description: "Customer ID."
call: "entitlement.get-entitlements"
with:
customer_id: "{{customer_id}}"
outputParameters:
- name: products
type: array
mapping: "$.products"
- name: active_count
type: integer
mapping: "$.activeCount"
consumes:
- type: http
namespace: entitlement
baseUri: "https://api.thomsonreuters.com/entitlement/v1"
authentication:
type: bearer
token: "$secrets.entitlement_token"
resources:
- name: entitlements
path: "/customers/{{customer_id}}/products"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-entitlements
method: GET
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves M&A deal data for a company from Refinitiv including deal value, parties, and status.
naftiko: "0.5"
info:
label: "Refinitiv Deals Data Lookup"
description: "Retrieves M&A deal data for a company from Refinitiv including deal value, parties, and status."
tags:
- data
- refinitiv
- deals
- mergers-acquisitions
capability:
exposes:
- type: mcp
namespace: deals-data
port: 8080
tools:
- name: get-deals
description: "Retrieve M&A deals for a company."
inputParameters:
- name: company_ric
in: body
type: string
description: "Company RIC."
call: "refinitiv.get-deals"
with:
ric: "{{company_ric}}"
outputParameters:
- name: deals
type: array
mapping: "$.deals"
- name: total
type: integer
mapping: "$.totalCount"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/deals/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: deals
path: "/search"
inputParameters:
- name: ric
in: query
operations:
- name: get-deals
method: GET
Retrieves key economic indicators (GDP, CPI, unemployment) for a country from Refinitiv.
naftiko: "0.5"
info:
label: "Refinitiv Economic Indicators"
description: "Retrieves key economic indicators (GDP, CPI, unemployment) for a country from Refinitiv."
tags:
- data
- refinitiv
- economics
capability:
exposes:
- type: mcp
namespace: economic-data
port: 8080
tools:
- name: get-economic-indicators
description: "Retrieve economic indicators for a country."
inputParameters:
- name: country
in: body
type: string
description: "Country ISO code."
call: "refinitiv.get-economics"
with:
country: "{{country}}"
outputParameters:
- name: gdp
type: number
mapping: "$.gdp"
- name: cpi
type: number
mapping: "$.cpi"
- name: unemployment
type: number
mapping: "$.unemploymentRate"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/economic-indicators/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: indicators
path: "/countries/{{country}}"
inputParameters:
- name: country
in: path
operations:
- name: get-economics
method: GET
Retrieves the current foreign exchange rate between two currencies from Refinitiv.
naftiko: "0.5"
info:
label: "Refinitiv FX Rate Lookup"
description: "Retrieves the current foreign exchange rate between two currencies from Refinitiv."
tags:
- data
- refinitiv
- foreign-exchange
capability:
exposes:
- type: mcp
namespace: fx-rates
port: 8080
tools:
- name: get-fx-rate
description: "Get current FX rate between two currencies."
inputParameters:
- name: from_currency
in: body
type: string
description: "Source currency."
- name: to_currency
in: body
type: string
description: "Target currency."
call: "refinitiv.get-fx"
with:
pair: "{{from_currency}}{{to_currency}}"
outputParameters:
- name: rate
type: number
mapping: "$.rate"
- name: timestamp
type: string
mapping: "$.timestamp"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/pricing/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: fx
path: "/quotes/{{pair}}="
inputParameters:
- name: pair
in: path
operations:
- name: get-fx
method: GET
Retrieves real-time market data for a financial instrument from Refinitiv Eikon including price, volume, and change. Used by financial professionals.
naftiko: "0.5"
info:
label: "Refinitiv Market Data Lookup"
description: "Retrieves real-time market data for a financial instrument from Refinitiv Eikon including price, volume, and change. Used by financial professionals."
tags:
- data
- refinitiv
- market-data
- finance
capability:
exposes:
- type: mcp
namespace: market-data
port: 8080
tools:
- name: get-market-data
description: "Retrieve real-time market data for a financial instrument."
inputParameters:
- name: ric
in: body
type: string
description: "Reuters Instrument Code."
call: "refinitiv.get-quote"
with:
ric: "{{ric}}"
outputParameters:
- name: last_price
type: number
mapping: "$.lastPrice"
- name: change
type: number
mapping: "$.netChange"
- name: volume
type: integer
mapping: "$.volume"
- name: timestamp
type: string
mapping: "$.tradeTimestamp"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/pricing/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: quotes
path: "/quotes/{{ric}}"
inputParameters:
- name: ric
in: path
operations:
- name: get-quote
method: GET
Retrieves institutional and insider ownership data for a company from Refinitiv.
naftiko: "0.5"
info:
label: "Refinitiv Ownership Data Lookup"
description: "Retrieves institutional and insider ownership data for a company from Refinitiv."
tags:
- data
- refinitiv
- ownership
capability:
exposes:
- type: mcp
namespace: ownership-data
port: 8080
tools:
- name: get-ownership
description: "Retrieve ownership data for a company."
inputParameters:
- name: ric
in: body
type: string
description: "Reuters Instrument Code."
call: "refinitiv.get-ownership"
with:
ric: "{{ric}}"
outputParameters:
- name: institutional_pct
type: number
mapping: "$.institutionalOwnershipPct"
- name: insider_pct
type: number
mapping: "$.insiderOwnershipPct"
- name: top_holders
type: array
mapping: "$.topHolders"
consumes:
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/ownership/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: ownership
path: "/companies/{{ric}}"
inputParameters:
- name: ric
in: path
operations:
- name: get-ownership
method: GET
Monitors regulatory updates from the TR regulatory intelligence platform, identifies changes affecting client jurisdictions, logs to Snowflake, and alerts the compliance team via Slack.
naftiko: "0.5"
info:
label: "Regulatory Change Tracker"
description: "Monitors regulatory updates from the TR regulatory intelligence platform, identifies changes affecting client jurisdictions, logs to Snowflake, and alerts the compliance team via Slack."
tags:
- compliance
- regulatory
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: reg-tracking
port: 8080
tools:
- name: track-regulatory-changes
description: "Monitor regulatory changes, log to Snowflake, and alert compliance team."
inputParameters:
- name: jurisdiction
in: body
type: string
description: "Jurisdiction to monitor."
- name: topic
in: body
type: string
description: "Regulatory topic area."
- name: slack_channel
in: body
type: string
description: "Slack channel for alerts."
steps:
- name: get-updates
type: call
call: "regulatory-intel.get-updates"
with:
jurisdiction: "{{jurisdiction}}"
topic: "{{topic}}"
- name: log-to-snowflake
type: call
call: "snowflake.execute-query"
with:
statement: "INSERT INTO COMPLIANCE.REG_CHANGES (jurisdiction, topic, title, effective_date) VALUES ('{{jurisdiction}}', '{{topic}}', '{{get-updates.title}}', '{{get-updates.effective_date}}')"
- name: alert-compliance
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Regulatory update: {{get-updates.title}} in {{jurisdiction}}. Effective: {{get-updates.effective_date}}. Topic: {{topic}}."
consumes:
- type: http
namespace: regulatory-intel
baseUri: "https://api.thomsonreuters.com/regulatory-intelligence/v1"
authentication:
type: bearer
token: "$secrets.regulatory_intel_token"
resources:
- name: updates
path: "/updates"
inputParameters:
- name: jurisdiction
in: query
- name: topic
in: query
operations:
- name: get-updates
method: GET
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Checks for new regulatory alerts in specified jurisdictions, logs them in Snowflake, creates Jira tracking issues, and notifies the compliance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Regulatory Intelligence Alert Pipeline"
description: "Checks for new regulatory alerts in specified jurisdictions, logs them in Snowflake, creates Jira tracking issues, and notifies the compliance team via Microsoft Teams."
tags:
- compliance
- regulatory
- snowflake
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: reg-alerts
port: 8080
tools:
- name: process-regulatory-alerts
description: "Check for regulatory alerts, log, create tracking issues, and notify."
inputParameters:
- name: jurisdictions
in: body
type: string
description: "Comma-separated jurisdiction codes."
- name: jira_project
in: body
type: string
description: "Jira project key."
- name: teams_webhook
in: body
type: string
description: "Teams webhook."
steps:
- name: get-alerts
type: call
call: "regulatory-intel.get-updates"
with:
jurisdiction: "{{jurisdictions}}"
- name: log-alerts
type: call
call: "snowflake.execute-query"
with:
statement: "INSERT INTO COMPLIANCE.REG_ALERTS (jurisdiction, title, date) SELECT * FROM TABLE(FLATTEN(input => PARSE_JSON('{{get-alerts.alerts}}')))"
- name: create-issues
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project}}"
summary: "Regulatory alert: {{get-alerts.title}}"
issue_type: "Task"
- name: notify-team
type: call
call: "msteams.send-message"
with:
webhook_url: "{{teams_webhook}}"
text: "New regulatory alerts: {{get-alerts.count}} updates in {{jurisdictions}}."
consumes:
- type: http
namespace: regulatory-intel
baseUri: "https://api.thomsonreuters.com/regulatory-intelligence/v1"
authentication:
type: bearer
token: "$secrets.regulatory_intel_token"
resources:
- name: updates
path: "/updates"
inputParameters:
- name: jurisdiction
in: query
operations:
- name: get-updates
method: GET
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: jira
baseUri: "https://thomsonreuters.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "{{webhook_url}}"
authentication:
type: none
resources:
- name: webhook
path: ""
operations:
- name: send-message
method: POST
Retrieves a full Reuters news article by article ID including headline, body, and metadata.
naftiko: "0.5"
info:
label: "Reuters News Article Viewer"
description: "Retrieves a full Reuters news article by article ID including headline, body, and metadata."
tags:
- news
- reuters
capability:
exposes:
- type: mcp
namespace: article-viewer
port: 8080
tools:
- name: get-article
description: "Retrieve a Reuters article by ID."
inputParameters:
- name: article_id
in: body
type: string
description: "Reuters article ID."
call: "reuters.get-article"
with:
article_id: "{{article_id}}"
outputParameters:
- name: headline
type: string
mapping: "$.headline"
- name: body
type: string
mapping: "$.bodyText"
- name: published_date
type: string
mapping: "$.publishedDate"
consumes:
- type: http
namespace: reuters
baseUri: "https://api.reuters.com/v2"
authentication:
type: bearer
token: "$secrets.reuters_token"
resources:
- name: articles
path: "/articles/{{article_id}}"
inputParameters:
- name: article_id
in: path
operations:
- name: get-article
method: GET
Retrieves the latest news articles from Reuters by topic, region, or keyword. Used by journalists, analysts, and compliance teams.
naftiko: "0.5"
info:
label: "Reuters News Feed Retrieval"
description: "Retrieves the latest news articles from Reuters by topic, region, or keyword. Used by journalists, analysts, and compliance teams."
tags:
- news
- reuters
- media
capability:
exposes:
- type: mcp
namespace: news-feed
port: 8080
tools:
- name: get-news
description: "Retrieve latest Reuters news articles by topic or keyword."
inputParameters:
- name: query
in: body
type: string
description: "Search query or topic."
- name: limit
in: body
type: integer
description: "Maximum articles to return."
call: "reuters.search-articles"
with:
query: "{{query}}"
limit: "{{limit}}"
outputParameters:
- name: articles
type: array
mapping: "$.articles"
- name: total
type: integer
mapping: "$.total"
consumes:
- type: http
namespace: reuters
baseUri: "https://api.reuters.com/v2"
authentication:
type: bearer
token: "$secrets.reuters_token"
resources:
- name: articles
path: "/articles/search"
inputParameters:
- name: query
in: query
- name: limit
in: query
operations:
- name: search-articles
method: GET
Retrieves a Salesforce account record by ID. Used by sales and account management.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account record by ID. Used by sales and account management."
tags:
- crm
- salesforce
capability:
exposes:
- type: mcp
namespace: crm-viewer
port: 8080
tools:
- name: get-salesforce-account
description: "Retrieve a Salesforce account by ID."
inputParameters:
- name: account_id
in: body
type: string
description: "Salesforce Account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: type
type: string
mapping: "$.Type"
- name: industry
type: string
mapping: "$.Industry"
consumes:
- type: http
namespace: salesforce
baseUri: "https://thomsonreuters.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Screens an entity against sanctions lists.
naftiko: "0.5"
info:
label: "Sanctions Screening Check"
description: "Screens an entity against sanctions lists."
tags:
- compliance
- risk
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: get-sanctions
description: "Screens an entity against sanctions lists."
inputParameters:
- name: entity_id
in: body
type: string
description: "The sanctions screening check identifier."
call: "compliance-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: compliance-api
baseUri: "https://api.thomson-reuters.com/compliance/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: sanctions
path: "/sanctions/screening/check/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sanctions
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.thomson-reuters.com/it/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number. Used by IT and operations staff.
naftiko: "0.5"
info:
label: "ServiceNow Incident Viewer"
description: "Retrieves a ServiceNow incident by number. Used by IT and operations staff."
tags:
- incident-management
- servicenow
capability:
exposes:
- type: mcp
namespace: incident-lookup
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "Incident number."
call: "servicenow.get-incident"
with:
number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: short_description
type: string
mapping: "$.result.short_description"
- name: assigned_to
type: string
mapping: "$.result.assigned_to.display_value"
consumes:
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: sysparm_query
in: query
operations:
- name: get-incident
method: GET
Retrieves a document from SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Document Viewer"
description: "Retrieves a document from SharePoint."
tags:
- collaboration
- sharepoint
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-sharepoint
description: "Retrieves a document from SharePoint."
inputParameters:
- name: entity_id
in: body
type: string
description: "The sharepoint document viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.thomson-reuters.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: sharepoint
path: "/sharepoint/document/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-sharepoint
method: GET
Uploads a file to SharePoint. Used for report archival and document management.
naftiko: "0.5"
info:
label: "SharePoint File Uploader"
description: "Uploads a file to SharePoint. Used for report archival and document management."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-upload
port: 8080
tools:
- name: upload-to-sharepoint
description: "Upload a file to SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "SharePoint site ID."
- name: folder_path
in: body
type: string
description: "Folder path."
- name: file_name
in: body
type: string
description: "File name."
call: "sharepoint.upload-file"
with:
site_id: "{{site_id}}"
folder_path: "{{folder_path}}"
file_name: "{{file_name}}"
outputParameters:
- name: web_url
type: string
mapping: "$.webUrl"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.thomson-reuters.com/communications/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Sends a message to a Slack channel. Used across Thomson Reuters for alerts and notifications.
naftiko: "0.5"
info:
label: "Slack Notification Sender"
description: "Sends a message to a Slack channel. Used across Thomson Reuters for alerts and notifications."
tags:
- notification
- slack
- messaging
capability:
exposes:
- type: mcp
namespace: notifications
port: 8080
tools:
- name: send-slack-message
description: "Send a message to a Slack channel."
inputParameters:
- name: channel
in: body
type: string
description: "Slack channel."
- name: text
in: body
type: string
description: "Message text."
call: "slack.post-message"
with:
channel: "{{channel}}"
text: "{{text}}"
outputParameters:
- name: ts
type: string
mapping: "$.ts"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.thomson-reuters.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Executes a SQL query against Thomson Reuters' Snowflake data warehouse and returns results.
naftiko: "0.5"
info:
label: "Snowflake Query Runner"
description: "Executes a SQL query against Thomson Reuters' Snowflake data warehouse and returns results."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: data-query
port: 8080
tools:
- name: run-snowflake-query
description: "Execute a SQL query on Snowflake and return results."
inputParameters:
- name: statement
in: body
type: string
description: "SQL statement to execute."
call: "snowflake.execute-query"
with:
statement: "{{statement}}"
outputParameters:
- name: data
type: array
mapping: "$.data"
- name: row_count
type: integer
mapping: "$.resultSetMetaData.numRows"
consumes:
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a specific tax code section.
naftiko: "0.5"
info:
label: "Tax Code Section Lookup"
description: "Retrieves a specific tax code section."
tags:
- tax
- legal
capability:
exposes:
- type: mcp
namespace: tax
port: 8080
tools:
- name: get-tax
description: "Retrieves a specific tax code section."
inputParameters:
- name: entity_id
in: body
type: string
description: "The tax code section lookup identifier."
call: "tax-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: tax-api
baseUri: "https://api.thomson-reuters.com/tax/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: tax
path: "/tax/code/section/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-tax
method: GET
Extracts client financial data from the tax platform, runs compliance checks, prepares the filing, submits to the IRS e-file system, and notifies the tax preparer via Microsoft Teams.
naftiko: "0.5"
info:
label: "Tax Filing Preparation Pipeline"
description: "Extracts client financial data from the tax platform, runs compliance checks, prepares the filing, submits to the IRS e-file system, and notifies the tax preparer via Microsoft Teams."
tags:
- tax
- compliance
- e-file
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: tax-filing
port: 8080
tools:
- name: prepare-and-file-tax
description: "Orchestrate tax filing from data extraction through e-file submission and notification."
inputParameters:
- name: client_id
in: body
type: string
description: "Tax client ID."
- name: tax_year
in: body
type: string
description: "Tax year."
- name: form_type
in: body
type: string
description: "Tax form type (e.g., 1040, 1120)."
- name: preparer_email
in: body
type: string
description: "Tax preparer email for notification."
steps:
- name: extract-data
type: call
call: "onesource.get-client-data"
with:
client_id: "{{client_id}}"
tax_year: "{{tax_year}}"
- name: run-compliance
type: call
call: "onesource.run-compliance-check"
with:
client_id: "{{client_id}}"
form_type: "{{form_type}}"
- name: submit-efile
type: call
call: "onesource.submit-efile"
with:
client_id: "{{client_id}}"
tax_year: "{{tax_year}}"
form_type: "{{form_type}}"
- name: notify-preparer
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{preparer_email}}"
text: "Tax filing submitted for client {{client_id}} ({{tax_year}} {{form_type}}). E-file confirmation: {{submit-efile.confirmation_id}}. Compliance: {{run-compliance.status}}."
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: client-data
path: "/clients/{{client_id}}/data"
inputParameters:
- name: client_id
in: path
- name: tax_year
in: query
operations:
- name: get-client-data
method: GET
- name: compliance
path: "/compliance/check"
operations:
- name: run-compliance-check
method: POST
- name: efile
path: "/efile/submit"
operations:
- name: submit-efile
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Searches the ONESOURCE tax form library for available forms by jurisdiction and form type.
naftiko: "0.5"
info:
label: "Tax Form Library Search"
description: "Searches the ONESOURCE tax form library for available forms by jurisdiction and form type."
tags:
- tax
- onesource
- forms
capability:
exposes:
- type: mcp
namespace: tax-forms
port: 8080
tools:
- name: search-tax-forms
description: "Search available tax forms."
inputParameters:
- name: jurisdiction
in: body
type: string
description: "Tax jurisdiction."
- name: form_type
in: body
type: string
description: "Form type."
call: "onesource.search-forms"
with:
jurisdiction: "{{jurisdiction}}"
type: "{{form_type}}"
outputParameters:
- name: forms
type: array
mapping: "$.forms"
- name: count
type: integer
mapping: "$.totalCount"
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: forms
path: "/forms/search"
inputParameters:
- name: jurisdiction
in: query
- name: type
in: query
operations:
- name: search-forms
method: GET
Runs a tax provision calculation for a corporate client using ONESOURCE, retrieves the results, and emails the summary to the tax director.
naftiko: "0.5"
info:
label: "Tax Provision Calculation"
description: "Runs a tax provision calculation for a corporate client using ONESOURCE, retrieves the results, and emails the summary to the tax director."
tags:
- tax
- provision
- onesource
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: tax-provision
port: 8080
tools:
- name: calculate-provision
description: "Run tax provision calculation and email results."
inputParameters:
- name: entity_id
in: body
type: string
description: "Corporate entity ID."
- name: period
in: body
type: string
description: "Reporting period."
- name: director_email
in: body
type: string
description: "Tax director email."
steps:
- name: run-calc
type: call
call: "onesource.calculate-provision"
with:
entity_id: "{{entity_id}}"
period: "{{period}}"
- name: email-results
type: call
call: "outlook.send-email"
with:
to: "{{director_email}}"
subject: "Tax Provision Results - {{entity_id}} - {{period}}"
body: "Provision calculation complete. Current tax: ${{run-calc.current_tax}}. Deferred tax: ${{run-calc.deferred_tax}}. Effective rate: {{run-calc.effective_rate}}%."
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: provision
path: "/provision/calculate"
operations:
- name: calculate-provision
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Checks the e-file status of a submitted tax return in ONESOURCE and returns acceptance or rejection status with details.
naftiko: "0.5"
info:
label: "Tax Return Status Tracker"
description: "Checks the e-file status of a submitted tax return in ONESOURCE and returns acceptance or rejection status with details."
tags:
- tax
- onesource
- e-file
capability:
exposes:
- type: mcp
namespace: efile-status
port: 8080
tools:
- name: check-efile-status
description: "Check the e-file status of a submitted tax return."
inputParameters:
- name: confirmation_id
in: body
type: string
description: "E-file confirmation ID."
call: "onesource.get-efile-status"
with:
confirmation_id: "{{confirmation_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: accepted_date
type: string
mapping: "$.acceptedDate"
- name: rejection_reason
type: string
mapping: "$.rejectionReason"
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: efile-status
path: "/efile/status/{{confirmation_id}}"
inputParameters:
- name: confirmation_id
in: path
operations:
- name: get-efile-status
method: GET
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Generates transfer pricing documentation using ONESOURCE, collects benchmark data from Refinitiv, publishes the report to SharePoint, and emails the tax team.
naftiko: "0.5"
info:
label: "Transfer Pricing Documentation Generator"
description: "Generates transfer pricing documentation using ONESOURCE, collects benchmark data from Refinitiv, publishes the report to SharePoint, and emails the tax team."
tags:
- tax
- transfer-pricing
- onesource
- refinitiv
- sharepoint
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: transfer-pricing
port: 8080
tools:
- name: generate-tp-documentation
description: "Generate transfer pricing documentation with benchmarking data."
inputParameters:
- name: entity_id
in: body
type: string
description: "Legal entity ID."
- name: fiscal_year
in: body
type: string
description: "Fiscal year."
- name: sharepoint_site
in: body
type: string
description: "SharePoint site ID."
- name: tax_team_email
in: body
type: string
description: "Tax team email."
steps:
- name: get-tp-data
type: call
call: "onesource.get-tp-data"
with:
entity_id: "{{entity_id}}"
fiscal_year: "{{fiscal_year}}"
- name: get-benchmarks
type: call
call: "refinitiv.get-tp-benchmarks"
with:
industry: "{{get-tp-data.industry}}"
region: "{{get-tp-data.region}}"
- name: upload-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "{{sharepoint_site}}"
folder_path: "TransferPricing/{{entity_id}}"
file_name: "TP_Doc_{{entity_id}}_{{fiscal_year}}.json"
- name: notify-team
type: call
call: "outlook.send-email"
with:
to: "{{tax_team_email}}"
subject: "Transfer Pricing Documentation - {{entity_id}} FY{{fiscal_year}}"
body: "TP documentation generated and uploaded to SharePoint. Benchmark arm's length range: {{get-benchmarks.range}}."
consumes:
- type: http
namespace: onesource
baseUri: "https://api.tax.thomsonreuters.com/onesource/v1"
authentication:
type: bearer
token: "$secrets.onesource_token"
resources:
- name: tp-data
path: "/transfer-pricing/entities/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
- name: fiscal_year
in: query
operations:
- name: get-tp-data
method: GET
- type: http
namespace: refinitiv
baseUri: "https://api.refinitiv.com/data/fundamentals/v1"
authentication:
type: bearer
token: "$secrets.refinitiv_token"
resources:
- name: benchmarks
path: "/benchmarks/transfer-pricing"
operations:
- name: get-tp-benchmarks
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.thomson-reuters.com/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.thomson-reuters.com/v2"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a specific legal case by citation from Westlaw and returns the case name, court, date, and summary.
naftiko: "0.5"
info:
label: "Westlaw Citation Lookup"
description: "Retrieves a specific legal case by citation from Westlaw and returns the case name, court, date, and summary."
tags:
- legal
- westlaw
- citation
capability:
exposes:
- type: mcp
namespace: citation-lookup
port: 8080
tools:
- name: get-case-by-citation
description: "Look up a legal case by citation."
inputParameters:
- name: citation
in: body
type: string
description: "Legal citation (e.g., 410 U.S. 113)."
call: "westlaw.get-case"
with:
citation: "{{citation}}"
outputParameters:
- name: case_name
type: string
mapping: "$.caseName"
- name: court
type: string
mapping: "$.court"
- name: date
type: string
mapping: "$.decisionDate"
- name: summary
type: string
mapping: "$.headnote"
consumes:
- type: http
namespace: westlaw
baseUri: "https://api.westlaw.com/v1"
authentication:
type: bearer
token: "$secrets.westlaw_token"
resources:
- name: cases
path: "/cases"
inputParameters:
- name: citation
in: query
operations:
- name: get-case
method: GET
Searches Westlaw for statutes and regulations by keyword and jurisdiction.
naftiko: "0.5"
info:
label: "Westlaw Statute Search"
description: "Searches Westlaw for statutes and regulations by keyword and jurisdiction."
tags:
- legal
- westlaw
- statutes
capability:
exposes:
- type: mcp
namespace: statute-search
port: 8080
tools:
- name: search-statutes
description: "Search for statutes and regulations."
inputParameters:
- name: query
in: body
type: string
description: "Search query."
- name: jurisdiction
in: body
type: string
description: "Jurisdiction."
call: "westlaw.search-statutes"
with:
query: "{{query}}"
jurisdiction: "{{jurisdiction}}"
outputParameters:
- name: results
type: array
mapping: "$.statutes"
- name: total
type: integer
mapping: "$.totalCount"
consumes:
- type: http
namespace: westlaw
baseUri: "https://api.westlaw.com/v1"
authentication:
type: bearer
token: "$secrets.westlaw_token"
resources:
- name: statutes
path: "/statutes/search"
inputParameters:
- name: query
in: query
- name: jurisdiction
in: query
operations:
- name: search-statutes
method: GET
Retrieves employee details from Workday by worker ID.
naftiko: "0.5"
info:
label: "Workday Employee Lookup"
description: "Retrieves employee details from Workday by worker ID."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up employee from Workday."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.fullName"
- name: department
type: string
mapping: "$.department"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.thomson-reuters.com/hr/v1"
authentication:
type: bearer
token: "$secrets.thomson_reuters_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Uploads a batch of entities for screening against World-Check, processes results, logs matches to Snowflake, and creates ServiceNow cases for positive matches.
naftiko: "0.5"
info:
label: "World-Check Batch Screening Pipeline"
description: "Uploads a batch of entities for screening against World-Check, processes results, logs matches to Snowflake, and creates ServiceNow cases for positive matches."
tags:
- compliance
- screening
- world-check
- snowflake
- servicenow
capability:
exposes:
- type: mcp
namespace: batch-screening
port: 8080
tools:
- name: batch-screen-entities
description: "Screen a batch of entities against World-Check and create cases for matches."
inputParameters:
- name: batch_name
in: body
type: string
description: "Batch screening name."
- name: entities
in: body
type: array
description: "Array of entity records to screen."
steps:
- name: submit-batch
type: call
call: "worldcheck.batch-screen"
with:
batch_name: "{{batch_name}}"
entities: "{{entities}}"
- name: log-results
type: call
call: "snowflake.execute-query"
with:
statement: "INSERT INTO COMPLIANCE.SCREENING_RESULTS (batch_name, total_screened, matches) VALUES ('{{batch_name}}', {{submit-batch.total_screened}}, {{submit-batch.match_count}})"
- name: create-cases
type: call
call: "servicenow.create-record"
with:
table: "u_screening_cases"
batch_name: "{{batch_name}}"
match_count: "{{submit-batch.match_count}}"
status: "pending_review"
consumes:
- type: http
namespace: worldcheck
baseUri: "https://api.worldcheck.thomsonreuters.com/v2"
authentication:
type: bearer
token: "$secrets.worldcheck_token"
resources:
- name: batch
path: "/cases/batch"
operations:
- name: batch-screen
method: POST
- type: http
namespace: snowflake
baseUri: "https://thomsonreuters.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
- type: http
namespace: servicenow
baseUri: "https://thomsonreuters.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Retrieves the current status of a World-Check screening case by case ID.
naftiko: "0.5"
info:
label: "World-Check Case Status"
description: "Retrieves the current status of a World-Check screening case by case ID."
tags:
- compliance
- world-check
- screening
capability:
exposes:
- type: mcp
namespace: wc-case
port: 8080
tools:
- name: get-case-status
description: "Get World-Check screening case status."
inputParameters:
- name: case_id
in: body
type: string
description: "World-Check case ID."
call: "worldcheck.get-case"
with:
case_id: "{{case_id}}"
outputParameters:
- name: status
type: string
mapping: "$.caseStatus"
- name: match_count
type: integer
mapping: "$.matchCount"
- name: risk_level
type: string
mapping: "$.riskLevel"
consumes:
- type: http
namespace: worldcheck
baseUri: "https://api.worldcheck.thomsonreuters.com/v2"
authentication:
type: bearer
token: "$secrets.worldcheck_token"
resources:
- name: cases
path: "/cases/{{case_id}}"
inputParameters:
- name: case_id
in: path
operations:
- name: get-case
method: GET