Springer Nature Capabilities
Naftiko 0.5 capability definitions for Springer Nature - 100 capabilities showing integration workflows and service orchestrations.
Retrieves the Altmetric attention score and social media mentions for a published article by DOI.
naftiko: "0.5"
info:
label: "Altmetric Score Lookup"
description: "Retrieves the Altmetric attention score and social media mentions for a published article by DOI."
tags:
- analytics
- publishing
- social-media
capability:
exposes:
- type: mcp
namespace: altmetrics
port: 8080
tools:
- name: get-altmetric-score
description: "Get the Altmetric attention score and breakdown for an article by DOI."
inputParameters:
- name: doi
in: body
type: string
description: "The article DOI."
call: "altmetric.get-doi"
with:
doi: "{{doi}}"
consumes:
- type: http
namespace: altmetric
baseUri: "https://api.altmetric.com/v1"
authentication:
type: apiKey
key: "$secrets.altmetric_api_key"
resources:
- name: articles
path: "/doi/{{doi}}"
inputParameters:
- name: doi
in: path
operations:
- name: get-doi
method: GET
Retrieves article preprint status data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Article Preprint Status"
description: "Retrieves article preprint status data from the Springernature academic publishing systems."
tags:
- article
- springernature
- status
capability:
exposes:
- type: mcp
namespace: article
port: 8080
tools:
- name: article-preprint-status
description: "Retrieves article preprint status data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.article-preprint-status"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/article/preprint/status/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: article-preprint-status
method: GET
Generates an APC invoice for an open access article, creates the invoice in SAP, and sends it to the corresponding author via MailChimp.
naftiko: "0.5"
info:
label: "Article Processing Charge Invoice Orchestrator"
description: "Generates an APC invoice for an open access article, creates the invoice in SAP, and sends it to the corresponding author via MailChimp."
tags:
- open-access
- finance
- sap
- mailchimp
capability:
exposes:
- type: mcp
namespace: apc-billing
port: 8080
tools:
- name: generate-apc-invoice
description: "Generate and send an Article Processing Charge invoice for an OA article."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID."
- name: apc_amount
in: body
type: string
description: "The APC amount in EUR."
steps:
- name: get-manuscript
type: call
call: "editorial-api.get-manuscript"
with:
id: "{{manuscript_id}}"
- name: create-invoice
type: call
call: "sap.create-invoice"
with:
customer_name: "{{get-manuscript.corresponding_author_name}}"
customer_email: "{{get-manuscript.corresponding_author_email}}"
amount: "{{apc_amount}}"
description: "APC for: {{get-manuscript.title}}"
- name: send-invoice
type: call
call: "mailchimp.send-transactional"
with:
template_name: "apc_invoice"
to_email: "{{get-manuscript.corresponding_author_email}}"
merge_vars:
author_name: "{{get-manuscript.corresponding_author_name}}"
article_title: "{{get-manuscript.title}}"
invoice_number: "{{create-invoice.invoice_number}}"
amount: "{{apc_amount}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: manuscripts
path: "/manuscripts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-manuscript
method: GET
- type: http
namespace: sap
baseUri: "https://sap.springernature.com/sap/opu/odata/sap/API_BILLING_DOCUMENT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: invoices
path: "/A_BillingDocument"
operations:
- name: create-invoice
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Retrieves article supplementary materials data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Article Supplementary Materials"
description: "Retrieves article supplementary materials data from the Springernature academic publishing systems."
tags:
- article
- springernature
- materials
capability:
exposes:
- type: mcp
namespace: article
port: 8080
tools:
- name: article-supplementary-materials
description: "Retrieves article supplementary materials data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.article-supplementary-materials"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/article/supplementary/materials/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: article-supplementary-materials
method: GET
Retrieves COUNTER-compliant usage statistics for a journal and pushes a summary report to a SharePoint dashboard for the publishing team.
naftiko: "0.5"
info:
label: "Article Usage Statistics Reporter"
description: "Retrieves COUNTER-compliant usage statistics for a journal and pushes a summary report to a SharePoint dashboard for the publishing team."
tags:
- analytics
- publishing
- sharepoint
capability:
exposes:
- type: mcp
namespace: usage-analytics
port: 8080
tools:
- name: generate-usage-report
description: "Pull usage statistics for a journal and push the report to SharePoint."
inputParameters:
- name: journal_id
in: body
type: string
description: "The journal identifier."
- name: report_period
in: body
type: string
description: "The reporting period (e.g., 2026-Q1)."
steps:
- name: get-stats
type: call
call: "usage-api.get-journal-stats"
with:
journal: "{{journal_id}}"
period: "{{report_period}}"
- name: upload-report
type: call
call: "sharepoint.update-file"
with:
site_id: "publishing_analytics"
file_path: "UsageReports/{{journal_id}}_{{report_period}}.json"
content: "{{get-stats}}"
consumes:
- type: http
namespace: usage-api
baseUri: "https://api.springernature.com/usage/v1"
authentication:
type: bearer
token: "$secrets.springernature_usage_token"
resources:
- name: journal-stats
path: "/journals/{{journal}}/stats?period={{period}}"
inputParameters:
- name: journal
in: path
- name: period
in: query
operations:
- name: get-journal-stats
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: update-file
method: PUT
Retrieves article version history lookup data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Article Version History Lookup"
description: "Retrieves article version history lookup data from the Springernature academic publishing systems."
tags:
- article
- springernature
- lookup
capability:
exposes:
- type: mcp
namespace: article
port: 8080
tools:
- name: article-version-history-lookup
description: "Retrieves article version history lookup data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.article-version-history-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/article/version/history/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: article-version-history-lookup
method: GET
Retrieves author affiliation verification data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Author Affiliation Verification"
description: "Retrieves author affiliation verification data from the Springernature academic publishing systems."
tags:
- author
- springernature
- verification
capability:
exposes:
- type: mcp
namespace: author
port: 8080
tools:
- name: author-affiliation-verification
description: "Retrieves author affiliation verification data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.author-affiliation-verification"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/author/affiliation/verification/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: author-affiliation-verification
method: GET
Orchestrates author engagement campaign pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Author Engagement Campaign Pipeline"
description: "Orchestrates author engagement campaign pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- author
- springernature
- jira
- teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: author
port: 8080
tools:
- name: author-engagement-campaign-pipeline
description: "Orchestrates author engagement campaign pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/author"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/author"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/author"
operations:
- name: execute-3
method: POST
Verifies an author's ORCID identifier and retrieves their publication history from the ORCID registry.
naftiko: "0.5"
info:
label: "Author ORCID Verification"
description: "Verifies an author's ORCID identifier and retrieves their publication history from the ORCID registry."
tags:
- editorial
- authors
- identity
capability:
exposes:
- type: mcp
namespace: author-verification
port: 8080
tools:
- name: verify-orcid
description: "Verify an ORCID ID and retrieve the associated author profile and publication history."
inputParameters:
- name: orcid_id
in: body
type: string
description: "The ORCID identifier (e.g., 0000-0002-1825-0097)."
call: "orcid.get-record"
with:
orcid: "{{orcid_id}}"
consumes:
- type: http
namespace: orcid
baseUri: "https://pub.orcid.org/v3.0"
authentication:
type: bearer
token: "$secrets.orcid_token"
resources:
- name: records
path: "/{{orcid}}/record"
inputParameters:
- name: orcid
in: path
operations:
- name: get-record
method: GET
Retrieves author publication history data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Author Publication History"
description: "Retrieves author publication history data from the Springernature academic publishing systems."
tags:
- author
- springernature
- history
capability:
exposes:
- type: mcp
namespace: author
port: 8080
tools:
- name: author-publication-history
description: "Retrieves author publication history data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.author-publication-history"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/author/publication/history/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: author-publication-history
method: GET
Orchestrates author royalty calculation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Author Royalty Calculation Pipeline"
description: "Orchestrates author royalty calculation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- author
- springernature
- sendgrid
- confluence
- datadog
capability:
exposes:
- type: mcp
namespace: author
port: 8080
tools:
- name: author-royalty-calculation-pipeline
description: "Orchestrates author royalty calculation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "confluence.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/author"
operations:
- name: execute-1
method: POST
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/author"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/author"
operations:
- name: execute-3
method: POST
Retrieves the latest royalty statement for a book author from the royalty management system.
naftiko: "0.5"
info:
label: "Author Royalty Statement Retrieval"
description: "Retrieves the latest royalty statement for a book author from the royalty management system."
tags:
- publishing
- royalties
- finance
capability:
exposes:
- type: mcp
namespace: royalties
port: 8080
tools:
- name: get-royalty-statement
description: "Retrieve the latest royalty statement for a book author by author ID."
inputParameters:
- name: author_id
in: body
type: string
description: "The author identifier."
call: "royalty-api.get-statement"
with:
author: "{{author_id}}"
consumes:
- type: http
namespace: royalty-api
baseUri: "https://api.springernature.com/royalties/v1"
authentication:
type: bearer
token: "$secrets.springernature_royalty_token"
resources:
- name: statements
path: "/authors/{{author}}/statements/latest"
inputParameters:
- name: author
in: path
operations:
- name: get-statement
method: GET
Orchestrates author services marketplace pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Author Services Marketplace Pipeline"
description: "Orchestrates author services marketplace pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- author
- springernature
- sendgrid
- confluence
- datadog
capability:
exposes:
- type: mcp
namespace: author
port: 8080
tools:
- name: author-services-marketplace-pipeline
description: "Orchestrates author services marketplace pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "confluence.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/author"
operations:
- name: execute-1
method: POST
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/author"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/author"
operations:
- name: execute-3
method: POST
Checks the latest deployment status for a specified Azure DevOps release pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Deployment Status"
description: "Checks the latest deployment status for a specified Azure DevOps release pipeline."
tags:
- devops
- azure-devops
- deployments
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: get-deployment-status
description: "Get the latest deployment status for an Azure DevOps release pipeline."
inputParameters:
- name: project_name
in: body
type: string
description: "The Azure DevOps project name."
- name: release_definition_id
in: body
type: string
description: "The release definition ID."
call: "azdo.get-latest-release"
with:
project: "{{project_name}}"
definition_id: "{{release_definition_id}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://vsrm.dev.azure.com/springernature"
authentication:
type: basic
username: ""
password: "$secrets.azdo_pat"
resources:
- name: releases
path: "/{{project}}/_apis/release/releases?definitionId={{definition_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: definition_id
in: query
operations:
- name: get-latest-release
method: GET
Orchestrates book award nomination pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Book Award Nomination Pipeline"
description: "Orchestrates book award nomination pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- book
- springernature
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-award-nomination-pipeline
description: "Orchestrates book award nomination pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/book"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/book"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/book"
operations:
- name: execute-3
method: POST
Retrieves book chapter metadata data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Book Chapter Metadata"
description: "Retrieves book chapter metadata data from the Springernature academic publishing systems."
tags:
- book
- springernature
- metadata
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-chapter-metadata
description: "Retrieves book chapter metadata data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.book-chapter-metadata"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/book/chapter/metadata/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: book-chapter-metadata
method: GET
Orchestrates book marketing campaign pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Book Marketing Campaign Pipeline"
description: "Orchestrates book marketing campaign pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- book
- springernature
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-marketing-campaign-pipeline
description: "Orchestrates book marketing campaign pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/book"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/book"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/book"
operations:
- name: execute-3
method: POST
Orchestrates book production workflow pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Book Production Workflow Pipeline"
description: "Orchestrates book production workflow pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- book
- springernature
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-production-workflow-pipeline
description: "Orchestrates book production workflow pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/book"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/book"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/book"
operations:
- name: execute-3
method: POST
When a book proposal is submitted, retrieves the proposal details, searches for potential series editors in the editorial database, and creates a Jira evaluation ticket.
naftiko: "0.5"
info:
label: "Book Proposal Evaluation Orchestrator"
description: "When a book proposal is submitted, retrieves the proposal details, searches for potential series editors in the editorial database, and creates a Jira evaluation ticket."
tags:
- publishing
- books
- jira
- editorial
capability:
exposes:
- type: mcp
namespace: book-proposals
port: 8080
tools:
- name: evaluate-book-proposal
description: "Process a new book proposal by finding suitable series editors and creating an evaluation task."
inputParameters:
- name: proposal_id
in: body
type: string
description: "The book proposal ID."
steps:
- name: get-proposal
type: call
call: "publishing-api.get-proposal"
with:
id: "{{proposal_id}}"
- name: find-editors
type: call
call: "editorial-api.search-editors"
with:
subject: "{{get-proposal.subject_area}}"
type: "series_editor"
- name: create-task
type: call
call: "jira.create-issue"
with:
project: "BOOKPROP"
summary: "Evaluate: {{get-proposal.title}}"
description: "Proposal from {{get-proposal.author_name}}. Subject: {{get-proposal.subject_area}}. Potential editors: {{find-editors.editor_names}}."
issuetype: "Task"
consumes:
- type: http
namespace: publishing-api
baseUri: "https://api.springernature.com/publishing/v1"
authentication:
type: bearer
token: "$secrets.springernature_publishing_token"
resources:
- name: proposals
path: "/proposals/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-proposal
method: GET
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: editors
path: "/editors/search"
operations:
- name: search-editors
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.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
Retrieves book proposal status lookup data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Book Proposal Status Lookup"
description: "Retrieves book proposal status lookup data from the Springernature academic publishing systems."
tags:
- book
- springernature
- lookup
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-proposal-status-lookup
description: "Retrieves book proposal status lookup data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.book-proposal-status-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/book/proposal/status/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: book-proposal-status-lookup
method: GET
Retrieves book series catalog search data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Book Series Catalog Search"
description: "Retrieves book series catalog search data from the Springernature academic publishing systems."
tags:
- book
- springernature
- search
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-series-catalog-search
description: "Retrieves book series catalog search data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.book-series-catalog-search"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/book/series/catalog/search/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: book-series-catalog-search
method: GET
Orchestrates book translation coordination pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Book Translation Coordination Pipeline"
description: "Orchestrates book translation coordination pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- book
- springernature
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: book
port: 8080
tools:
- name: book-translation-coordination-pipeline
description: "Orchestrates book translation coordination pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/book"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/book"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/book"
operations:
- name: execute-3
method: POST
Uploads or retrieves manuscript files from Box cloud storage for the editorial workflow.
naftiko: "0.5"
info:
label: "Box Manuscript File Manager"
description: "Uploads or retrieves manuscript files from Box cloud storage for the editorial workflow."
tags:
- editorial
- box
- documents
capability:
exposes:
- type: mcp
namespace: file-mgmt
port: 8080
tools:
- name: get-manuscript-file
description: "Retrieve a manuscript file from Box by manuscript ID."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID."
call: "box.search-files"
with:
query: "{{manuscript_id}}"
consumes:
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: search
path: "/search?query={{query}}"
inputParameters:
- name: query
in: query
operations:
- name: search-files
method: GET
Retrieves citation data for an article from Crossref and generates a citation network summary including citing articles, total citations, and h-index impact.
naftiko: "0.5"
info:
label: "Citation Network Analyzer"
description: "Retrieves citation data for an article from Crossref and generates a citation network summary including citing articles, total citations, and h-index impact."
tags:
- analytics
- publishing
- citations
capability:
exposes:
- type: mcp
namespace: citation-analytics
port: 8080
tools:
- name: analyze-citations
description: "Retrieve and analyze the citation network for a published article."
inputParameters:
- name: doi
in: body
type: string
description: "The article DOI."
steps:
- name: get-citations
type: call
call: "crossref.get-citations"
with:
doi: "{{doi}}"
- name: get-article
type: call
call: "springerlink.get-article"
with:
doi: "{{doi}}"
consumes:
- type: http
namespace: crossref
baseUri: "https://api.crossref.org"
authentication:
type: apiKey
key: "$secrets.crossref_token"
resources:
- name: citations
path: "/works/{{doi}}"
inputParameters:
- name: doi
in: path
operations:
- name: get-citations
method: GET
- type: http
namespace: springerlink
baseUri: "https://api.springernature.com/meta/v2"
authentication:
type: apiKey
key: "$secrets.springernature_api_key"
resources:
- name: articles
path: "/json?q=doi:{{doi}}"
inputParameters:
- name: doi
in: query
operations:
- name: get-article
method: GET
Purges the Cloudflare CDN cache for specified URL patterns on SpringerLink or Nature.com.
naftiko: "0.5"
info:
label: "Cloudflare CDN Cache Purge"
description: "Purges the Cloudflare CDN cache for specified URL patterns on SpringerLink or Nature.com."
tags:
- infrastructure
- cloudflare
- cdn
capability:
exposes:
- type: mcp
namespace: cdn-ops
port: 8080
tools:
- name: purge-cdn-cache
description: "Purge the Cloudflare CDN cache for specified URL patterns."
inputParameters:
- name: url_patterns
in: body
type: array
description: "List of URL patterns to purge."
call: "cloudflare.purge-cache"
with:
zone_id: "$secrets.cloudflare_zone_id"
files: "{{url_patterns}}"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: cache
path: "/zones/{{zone_id}}/purge_cache"
inputParameters:
- name: zone_id
in: path
operations:
- name: purge-cache
method: POST
Orchestrates conference proceedings production pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Conference Proceedings Production Pipeline"
description: "Orchestrates conference proceedings production pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- conference
- springernature
- datadog
- springernature
- salesforce
capability:
exposes:
- type: mcp
namespace: conference
port: 8080
tools:
- name: conference-proceedings-production-pipeline
description: "Orchestrates conference proceedings production pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "springernature.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/conference"
operations:
- name: execute-1
method: POST
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/conference"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/conference"
operations:
- name: execute-3
method: POST
Processes a batch of conference proceedings papers by registering DOIs, depositing metadata with Crossref, and publishing them on SpringerLink.
naftiko: "0.5"
info:
label: "Conference Proceedings Publisher Orchestrator"
description: "Processes a batch of conference proceedings papers by registering DOIs, depositing metadata with Crossref, and publishing them on SpringerLink."
tags:
- publishing
- conferences
- doi
- production
capability:
exposes:
- type: mcp
namespace: proceedings
port: 8080
tools:
- name: publish-proceedings
description: "Process and publish a batch of conference proceedings including DOI registration and Crossref deposit."
inputParameters:
- name: conference_id
in: body
type: string
description: "The conference identifier."
- name: volume_id
in: body
type: string
description: "The proceedings volume ID."
steps:
- name: get-papers
type: call
call: "publishing-api.get-proceedings-papers"
with:
conference: "{{conference_id}}"
volume: "{{volume_id}}"
- name: register-dois
type: call
call: "doi-api.register-batch"
with:
papers: "{{get-papers.papers}}"
- name: deposit-metadata
type: call
call: "crossref.deposit-batch"
with:
papers: "{{register-dois.registered_papers}}"
- name: publish
type: call
call: "production-api.publish-batch"
with:
volume: "{{volume_id}}"
papers: "{{deposit-metadata.deposited_papers}}"
consumes:
- type: http
namespace: publishing-api
baseUri: "https://api.springernature.com/publishing/v1"
authentication:
type: bearer
token: "$secrets.springernature_publishing_token"
resources:
- name: proceedings
path: "/conferences/{{conference}}/volumes/{{volume}}/papers"
inputParameters:
- name: conference
in: path
- name: volume
in: path
operations:
- name: get-proceedings-papers
method: GET
- type: http
namespace: doi-api
baseUri: "https://api.springernature.com/doi/v1"
authentication:
type: bearer
token: "$secrets.springernature_doi_token"
resources:
- name: batch
path: "/register/batch"
operations:
- name: register-batch
method: POST
- type: http
namespace: crossref
baseUri: "https://api.crossref.org"
authentication:
type: basic
username: "$secrets.crossref_user"
password: "$secrets.crossref_password"
resources:
- name: deposits
path: "/deposits"
operations:
- name: deposit-batch
method: POST
- type: http
namespace: production-api
baseUri: "https://api.springernature.com/production/v1"
authentication:
type: bearer
token: "$secrets.springernature_production_token"
resources:
- name: publishing
path: "/publish/batch"
operations:
- name: publish-batch
method: POST
Creates or updates a Confluence page documenting the editorial workflow for a specific journal.
naftiko: "0.5"
info:
label: "Confluence Editorial Workflow Documentation"
description: "Creates or updates a Confluence page documenting the editorial workflow for a specific journal."
tags:
- documentation
- confluence
- editorial
capability:
exposes:
- type: mcp
namespace: documentation
port: 8080
tools:
- name: update-journal-workflow-doc
description: "Create or update a Confluence page with the editorial workflow documentation for a journal."
inputParameters:
- name: journal_name
in: body
type: string
description: "The journal name."
- name: workflow_content
in: body
type: string
description: "The workflow documentation content in wiki markup."
call: "confluence.create-or-update-page"
with:
space_key: "EDITORIAL"
title: "Workflow: {{journal_name}}"
body: "{{workflow_content}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-or-update-page
method: POST
Orchestrates content accessibility compliance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Content Accessibility Compliance Pipeline"
description: "Orchestrates content accessibility compliance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- content
- springernature
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-accessibility-compliance-pipeline
description: "Orchestrates content accessibility compliance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/content"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/content"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/content"
operations:
- name: execute-3
method: POST
Orchestrates content discovery optimization pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Content Discovery Optimization Pipeline"
description: "Orchestrates content discovery optimization pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- content
- springernature
- datadog
- springernature
- salesforce
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-discovery-optimization-pipeline
description: "Orchestrates content discovery optimization pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "springernature.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/content"
operations:
- name: execute-1
method: POST
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/content"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/content"
operations:
- name: execute-3
method: POST
Orchestrates content metadata enrichment pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Content Metadata Enrichment Pipeline"
description: "Orchestrates content metadata enrichment pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- content
- springernature
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-metadata-enrichment-pipeline
description: "Orchestrates content metadata enrichment pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/content"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/content"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/content"
operations:
- name: execute-3
method: POST
Orchestrates content preservation archiving pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Content Preservation Archiving Pipeline"
description: "Orchestrates content preservation archiving pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- content
- springernature
- jira
- teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-preservation-archiving-pipeline
description: "Orchestrates content preservation archiving pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/content"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/content"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/content"
operations:
- name: execute-3
method: POST
Checks the rights and permissions status for a piece of content, verifying reuse eligibility and license terms.
naftiko: "0.5"
info:
label: "Content Rights and Permissions Checker"
description: "Checks the rights and permissions status for a piece of content, verifying reuse eligibility and license terms."
tags:
- publishing
- licensing
- rights
capability:
exposes:
- type: mcp
namespace: rights
port: 8080
tools:
- name: check-content-rights
description: "Check the rights and permissions for a content item by DOI."
inputParameters:
- name: doi
in: body
type: string
description: "The DOI of the content."
- name: usage_type
in: body
type: string
description: "The intended usage type (e.g., reprint, translation, course_pack)."
call: "rights-api.check-permissions"
with:
doi: "{{doi}}"
usage: "{{usage_type}}"
consumes:
- type: http
namespace: rights-api
baseUri: "https://api.springernature.com/rights/v1"
authentication:
type: bearer
token: "$secrets.springernature_rights_token"
resources:
- name: permissions
path: "/content/{{doi}}/permissions?usage={{usage}}"
inputParameters:
- name: doi
in: path
- name: usage
in: query
operations:
- name: check-permissions
method: GET
Orchestrates content rights clearance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Content Rights Clearance Pipeline"
description: "Orchestrates content rights clearance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- content
- springernature
- sendgrid
- confluence
- datadog
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-rights-clearance-pipeline
description: "Orchestrates content rights clearance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "sendgrid.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "confluence.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "datadog.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/content"
operations:
- name: execute-1
method: POST
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/content"
operations:
- name: execute-2
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/content"
operations:
- name: execute-3
method: POST
Orchestrates content syndication pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Content Syndication Pipeline"
description: "Orchestrates content syndication pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- content
- springernature
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-syndication-pipeline
description: "Orchestrates content syndication pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/content"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/content"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/content"
operations:
- name: execute-3
method: POST
Retrieves content usage by institution data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Content Usage By Institution"
description: "Retrieves content usage by institution data from the Springernature academic publishing systems."
tags:
- content
- springernature
- institution
capability:
exposes:
- type: mcp
namespace: content
port: 8080
tools:
- name: content-usage-by-institution
description: "Retrieves content usage by institution data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.content-usage-by-institution"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/content/usage/by/institution/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: content-usage-by-institution
method: GET
Retrieves health status and alerts for Springer Nature digital platform services from Datadog.
naftiko: "0.5"
info:
label: "Datadog Platform Health Monitor"
description: "Retrieves health status and alerts for Springer Nature digital platform services from Datadog."
tags:
- monitoring
- datadog
- infrastructure
capability:
exposes:
- type: mcp
namespace: platform-health
port: 8080
tools:
- name: get-platform-health
description: "Get health status and active alerts for SpringerLink and related platform services."
inputParameters:
- name: service_name
in: body
type: string
description: "The platform service name."
call: "datadog.get-service-status"
with:
service: "{{service_name}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
inputParameters:
- name: DD-APPLICATION-KEY
in: header
value: "$secrets.datadog_app_key"
resources:
- name: services
path: "/service_summary?service={{service}}"
inputParameters:
- name: service
in: query
operations:
- name: get-service-status
method: GET
Queries Dynatrace for active performance problems on the SpringerLink platform.
naftiko: "0.5"
info:
label: "Dynatrace SpringerLink Performance"
description: "Queries Dynatrace for active performance problems on the SpringerLink platform."
tags:
- monitoring
- dynatrace
- platform
capability:
exposes:
- type: mcp
namespace: springerlink-monitoring
port: 8080
tools:
- name: get-springerlink-problems
description: "Get active Dynatrace problems affecting the SpringerLink platform."
inputParameters:
- name: severity
in: body
type: string
description: "Minimum severity level to filter (AVAILABILITY, ERROR, PERFORMANCE)."
call: "dynatrace.get-problems"
with:
severity: "{{severity}}"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://springernature.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: problems
path: "/problems?problemSelector=status(\"OPEN\")&severityLevel={{severity}}"
inputParameters:
- name: severity
in: query
operations:
- name: get-problems
method: GET
Searches the editorial board database for members by journal or subject area, returning expertise profiles and availability.
naftiko: "0.5"
info:
label: "Editorial Board Member Directory"
description: "Searches the editorial board database for members by journal or subject area, returning expertise profiles and availability."
tags:
- editorial
- peer-review
- directory
capability:
exposes:
- type: mcp
namespace: editorial-board
port: 8080
tools:
- name: search-board-members
description: "Search for editorial board members by journal or subject area."
inputParameters:
- name: journal_id
in: body
type: string
description: "The journal identifier."
- name: subject_area
in: body
type: string
description: "Optional subject area filter."
call: "editorial-api.search-board"
with:
journal: "{{journal_id}}"
subject: "{{subject_area}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: board-members
path: "/journals/{{journal}}/board?subject={{subject}}"
inputParameters:
- name: journal
in: path
- name: subject
in: query
operations:
- name: search-board
method: GET
Orchestrates editorial board recruitment pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Editorial Board Recruitment Pipeline"
description: "Orchestrates editorial board recruitment pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- editorial
- springernature
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: editorial
port: 8080
tools:
- name: editorial-board-recruitment-pipeline
description: "Orchestrates editorial board recruitment pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/editorial"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/editorial"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/editorial"
operations:
- name: execute-3
method: POST
When an editor makes a decision on a manuscript (accept, revise, reject), updates the editorial system, notifies the author via MailChimp, and logs the decision in Salesforce.
naftiko: "0.5"
info:
label: "Editorial Decision Notification Orchestrator"
description: "When an editor makes a decision on a manuscript (accept, revise, reject), updates the editorial system, notifies the author via MailChimp, and logs the decision in Salesforce."
tags:
- editorial
- peer-review
- mailchimp
- salesforce
capability:
exposes:
- type: mcp
namespace: editorial-decisions
port: 8080
tools:
- name: process-editorial-decision
description: "Process an editorial decision and notify all relevant parties."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID."
- name: decision
in: body
type: string
description: "The editorial decision (accept, minor_revision, major_revision, reject)."
- name: editor_comments
in: body
type: string
description: "The editor's decision comments."
steps:
- name: update-status
type: call
call: "editorial-api.update-decision"
with:
id: "{{manuscript_id}}"
decision: "{{decision}}"
comments: "{{editor_comments}}"
- name: get-manuscript
type: call
call: "editorial-api.get-manuscript"
with:
id: "{{manuscript_id}}"
- name: notify-author
type: call
call: "mailchimp.send-transactional"
with:
template_name: "editorial_decision_{{decision}}"
to_email: "{{get-manuscript.corresponding_author_email}}"
merge_vars:
author_name: "{{get-manuscript.corresponding_author_name}}"
title: "{{get-manuscript.title}}"
journal: "{{get-manuscript.journal}}"
decision: "{{decision}}"
comments: "{{editor_comments}}"
- name: log-decision
type: call
call: "salesforce.create-activity"
with:
object: "Manuscript__c"
record_id: "{{manuscript_id}}"
activity_type: "editorial_decision"
details: "Decision: {{decision}} by {{get-manuscript.handling_editor}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: manuscripts
path: "/manuscripts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-manuscript
method: GET
- name: update-decision
method: PATCH
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
Orchestrates editorial decision tracking pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Editorial Decision Tracking Pipeline"
description: "Orchestrates editorial decision tracking pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- editorial
- springernature
- confluence
- datadog
- springernature
capability:
exposes:
- type: mcp
namespace: editorial
port: 8080
tools:
- name: editorial-decision-tracking-pipeline
description: "Orchestrates editorial decision tracking pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "confluence.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "springernature.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/editorial"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/editorial"
operations:
- name: execute-2
method: POST
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/editorial"
operations:
- name: execute-3
method: POST
Orchestrates editorial workflow automation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Editorial Workflow Automation Pipeline"
description: "Orchestrates editorial workflow automation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- editorial
- springernature
- snowflake
- slack
- jira
capability:
exposes:
- type: mcp
namespace: editorial
port: 8080
tools:
- name: editorial-workflow-automation-pipeline
description: "Orchestrates editorial workflow automation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "snowflake.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "slack.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "jira.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/editorial"
operations:
- name: execute-1
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/editorial"
operations:
- name: execute-2
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/editorial"
operations:
- name: execute-3
method: POST
When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft 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 the full onboarding process for a new Springer Nature employee."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
- name: start_date
in: body
type: string
description: "The start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
- 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 Springer Nature, {{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://springernature.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 page views, unique visitors, and engagement metrics from Google Analytics for SpringerLink content pages.
naftiko: "0.5"
info:
label: "Google Analytics Content Performance"
description: "Retrieves page views, unique visitors, and engagement metrics from Google Analytics for SpringerLink content pages."
tags:
- analytics
- google-analytics
- content
capability:
exposes:
- type: mcp
namespace: content-analytics
port: 8080
tools:
- name: get-content-performance
description: "Get Google Analytics performance metrics for SpringerLink content."
inputParameters:
- name: content_path
in: body
type: string
description: "The URL path of the content page."
- name: date_range
in: body
type: string
description: "The date range (e.g., last_7_days, last_30_days)."
call: "ga.get-report"
with:
page_path: "{{content_path}}"
range: "{{date_range}}"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
operations:
- name: get-report
method: POST
Retrieves a shared document from Google Drive by file ID.
naftiko: "0.5"
info:
label: "Google Drive Shared Document Retrieval"
description: "Retrieves a shared document from Google Drive by file ID."
tags:
- documents
- google-drive
capability:
exposes:
- type: mcp
namespace: google-docs
port: 8080
tools:
- name: get-drive-document
description: "Retrieve a shared document from Google Drive."
inputParameters:
- name: file_id
in: body
type: string
description: "The Google Drive file ID."
call: "gdrive.get-file"
with:
id: "{{file_id}}"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files/{{id}}?alt=media"
inputParameters:
- name: id
in: path
operations:
- name: get-file
method: GET
Syncs author and reviewer contacts from the editorial system to HubSpot for marketing communications.
naftiko: "0.5"
info:
label: "HubSpot Marketing Contact Sync"
description: "Syncs author and reviewer contacts from the editorial system to HubSpot for marketing communications."
tags:
- marketing
- hubspot
- contacts
capability:
exposes:
- type: mcp
namespace: marketing-contacts
port: 8080
tools:
- name: sync-contacts-to-hubspot
description: "Sync a batch of editorial contacts to HubSpot CRM."
inputParameters:
- name: contact_type
in: body
type: string
description: "The contact type (author, reviewer, editor)."
- name: journal_id
in: body
type: string
description: "The journal identifier to sync contacts for."
steps:
- name: get-contacts
type: call
call: "editorial-api.get-contacts"
with:
type: "{{contact_type}}"
journal: "{{journal_id}}"
- name: upsert-contacts
type: call
call: "hubspot.batch-upsert"
with:
contacts: "{{get-contacts.contacts}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: contacts
path: "/journals/{{journal}}/contacts?type={{type}}"
inputParameters:
- name: journal
in: path
- name: type
in: query
operations:
- name: get-contacts
method: GET
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/objects/contacts/batch/upsert"
operations:
- name: batch-upsert
method: POST
Orchestrates institutional agreement renewal pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Institutional Agreement Renewal Pipeline"
description: "Orchestrates institutional agreement renewal pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- institutional
- springernature
- teams
- sendgrid
- confluence
capability:
exposes:
- type: mcp
namespace: institutional
port: 8080
tools:
- name: institutional-agreement-renewal-pipeline
description: "Orchestrates institutional agreement renewal pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "confluence.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/institutional"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/institutional"
operations:
- name: execute-2
method: POST
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/institutional"
operations:
- name: execute-3
method: POST
Retrieves institutional deal terms lookup data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Institutional Deal Terms Lookup"
description: "Retrieves institutional deal terms lookup data from the Springernature academic publishing systems."
tags:
- institutional
- springernature
- lookup
capability:
exposes:
- type: mcp
namespace: institutional
port: 8080
tools:
- name: institutional-deal-terms-lookup
description: "Retrieves institutional deal terms lookup data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.institutional-deal-terms-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/institutional/deal/terms/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: institutional-deal-terms-lookup
method: GET
When an institutional subscription approaches expiry, retrieves usage analytics, generates a renewal proposal in Salesforce, and sends the proposal to the library contact via MailChimp.
naftiko: "0.5"
info:
label: "Institutional Subscription Renewal Orchestrator"
description: "When an institutional subscription approaches expiry, retrieves usage analytics, generates a renewal proposal in Salesforce, and sends the proposal to the library contact via MailChimp."
tags:
- subscriptions
- salesforce
- mailchimp
- renewals
capability:
exposes:
- type: mcp
namespace: subscription-renewal
port: 8080
tools:
- name: process-renewal
description: "Generate and send a subscription renewal proposal based on usage data."
inputParameters:
- name: institution_id
in: body
type: string
description: "The institution identifier."
- name: subscription_id
in: body
type: string
description: "The subscription identifier."
steps:
- name: get-subscription
type: call
call: "subscription-api.get-subscription"
with:
id: "{{subscription_id}}"
- name: get-usage
type: call
call: "usage-api.get-institution-stats"
with:
institution: "{{institution_id}}"
- name: create-opportunity
type: call
call: "salesforce.create-opportunity"
with:
name: "Renewal: {{get-subscription.institution_name}} - {{get-subscription.collection}}"
amount: "{{get-subscription.renewal_amount}}"
close_date: "{{get-subscription.expiry_date}}"
usage_data: "{{get-usage}}"
- name: send-proposal
type: call
call: "mailchimp.send-transactional"
with:
template_name: "subscription_renewal"
to_email: "{{get-subscription.library_contact_email}}"
merge_vars:
institution_name: "{{get-subscription.institution_name}}"
total_downloads: "{{get-usage.total_downloads}}"
renewal_amount: "{{get-subscription.renewal_amount}}"
consumes:
- type: http
namespace: subscription-api
baseUri: "https://api.springernature.com/subscriptions/v1"
authentication:
type: bearer
token: "$secrets.springernature_subscription_token"
resources:
- name: subscriptions
path: "/subscriptions/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-subscription
method: GET
- type: http
namespace: usage-api
baseUri: "https://api.springernature.com/usage/v1"
authentication:
type: bearer
token: "$secrets.springernature_usage_token"
resources:
- name: institution-stats
path: "/institutions/{{institution}}/stats"
inputParameters:
- name: institution
in: path
operations:
- name: get-institution-stats
method: GET
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: create-opportunity
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Retrieves the current sprint issues from a Jira editorial project board, showing status and assignees.
naftiko: "0.5"
info:
label: "Jira Editorial Sprint Board"
description: "Retrieves the current sprint issues from a Jira editorial project board, showing status and assignees."
tags:
- project-management
- jira
- editorial
capability:
exposes:
- type: mcp
namespace: project-mgmt
port: 8080
tools:
- name: get-sprint-issues
description: "Get all issues in the current sprint for a Jira editorial project."
inputParameters:
- name: project_key
in: body
type: string
description: "The Jira project key (e.g., EDIT, PUB)."
call: "jira.search-issues"
with:
jql: "project={{project_key}} AND sprint in openSprints()"
consumes:
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search?jql={{jql}}"
inputParameters:
- name: jql
in: query
operations:
- name: search-issues
method: GET
Orchestrates journal advertising pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Journal Advertising Pipeline"
description: "Orchestrates journal advertising pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- journal
- springernature
- springernature
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-advertising-pipeline
description: "Orchestrates journal advertising pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "springernature.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/journal"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/journal"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/journal"
operations:
- name: execute-3
method: POST
Resolves a DOI to retrieve full article metadata including title, authors, journal, volume, issue, and publication date.
naftiko: "0.5"
info:
label: "Journal Article DOI Resolver"
description: "Resolves a DOI to retrieve full article metadata including title, authors, journal, volume, issue, and publication date."
tags:
- publishing
- metadata
- doi
capability:
exposes:
- type: mcp
namespace: metadata
port: 8080
tools:
- name: resolve-doi
description: "Resolve a DOI and return the full article metadata."
inputParameters:
- name: doi
in: body
type: string
description: "The Digital Object Identifier to resolve."
call: "crossref.get-work"
with:
doi: "{{doi}}"
consumes:
- type: http
namespace: crossref
baseUri: "https://api.crossref.org"
authentication:
type: apiKey
key: "$secrets.crossref_token"
resources:
- name: works
path: "/works/{{doi}}"
inputParameters:
- name: doi
in: path
operations:
- name: get-work
method: GET
Retrieves journal editorial calendar data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Journal Editorial Calendar"
description: "Retrieves journal editorial calendar data from the Springernature academic publishing systems."
tags:
- journal
- springernature
- calendar
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-editorial-calendar
description: "Retrieves journal editorial calendar data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.journal-editorial-calendar"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/journal/editorial/calendar/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: journal-editorial-calendar
method: GET
Orchestrates journal flipping to oa pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Journal Flipping To Oa Pipeline"
description: "Orchestrates journal flipping to oa pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- journal
- springernature
- springernature
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-flipping-to-oa-pipeline
description: "Orchestrates journal flipping to oa pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "springernature.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/journal"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/journal"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/journal"
operations:
- name: execute-3
method: POST
Retrieves the latest impact factor, citescore, and ranking data for a specified journal.
naftiko: "0.5"
info:
label: "Journal Impact Factor Lookup"
description: "Retrieves the latest impact factor, citescore, and ranking data for a specified journal."
tags:
- analytics
- publishing
- metrics
capability:
exposes:
- type: mcp
namespace: journal-metrics
port: 8080
tools:
- name: get-impact-factor
description: "Look up the latest impact factor and ranking metrics for a journal."
inputParameters:
- name: journal_id
in: body
type: string
description: "The journal identifier or ISSN."
call: "metrics-api.get-journal-metrics"
with:
journal: "{{journal_id}}"
consumes:
- type: http
namespace: metrics-api
baseUri: "https://api.springernature.com/metrics/v1"
authentication:
type: bearer
token: "$secrets.springernature_metrics_token"
resources:
- name: journals
path: "/journals/{{journal}}/metrics"
inputParameters:
- name: journal
in: path
operations:
- name: get-journal-metrics
method: GET
Orchestrates journal indexing submission pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Journal Indexing Submission Pipeline"
description: "Orchestrates journal indexing submission pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- journal
- springernature
- springernature
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-indexing-submission-pipeline
description: "Orchestrates journal indexing submission pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "springernature.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/journal"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/journal"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/journal"
operations:
- name: execute-3
method: POST
Orchestrates journal quality metrics pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Journal Quality Metrics Pipeline"
description: "Orchestrates journal quality metrics pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- journal
- springernature
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-quality-metrics-pipeline
description: "Orchestrates journal quality metrics pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/journal"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/journal"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/journal"
operations:
- name: execute-3
method: POST
Orchestrates journal ranking analytics pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Journal Ranking Analytics Pipeline"
description: "Orchestrates journal ranking analytics pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- journal
- springernature
- teams
- sendgrid
- confluence
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-ranking-analytics-pipeline
description: "Orchestrates journal ranking analytics pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "confluence.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/journal"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/journal"
operations:
- name: execute-2
method: POST
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/journal"
operations:
- name: execute-3
method: POST
Retrieves journal rejection rate lookup data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Journal Rejection Rate Lookup"
description: "Retrieves journal rejection rate lookup data from the Springernature academic publishing systems."
tags:
- journal
- springernature
- lookup
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-rejection-rate-lookup
description: "Retrieves journal rejection rate lookup data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.journal-rejection-rate-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/journal/rejection/rate/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: journal-rejection-rate-lookup
method: GET
Retrieves journal review turnaround metrics data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Journal Review Turnaround Metrics"
description: "Retrieves journal review turnaround metrics data from the Springernature academic publishing systems."
tags:
- journal
- springernature
- metrics
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-review-turnaround-metrics
description: "Retrieves journal review turnaround metrics data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.journal-review-turnaround-metrics"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/journal/review/turnaround/metrics/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: journal-review-turnaround-metrics
method: GET
Retrieves journal special issue status data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Journal Special Issue Status"
description: "Retrieves journal special issue status data from the Springernature academic publishing systems."
tags:
- journal
- springernature
- status
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-special-issue-status
description: "Retrieves journal special issue status data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.journal-special-issue-status"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/journal/special/issue/status/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: journal-special-issue-status
method: GET
Retrieves journal submission guidelines lookup data from the Springernature academic publishing systems.
naftiko: "0.5"
info:
label: "Journal Submission Guidelines Lookup"
description: "Retrieves journal submission guidelines lookup data from the Springernature academic publishing systems."
tags:
- journal
- springernature
- lookup
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-submission-guidelines-lookup
description: "Retrieves journal submission guidelines lookup data from the Springernature academic publishing systems."
inputParameters:
- name: input_id
in: body
type: string
description: "The input id."
call: "springernature.journal-submission-guidelines-lookup"
with:
input_id: "{{input_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
- name: status
type: string
mapping: "$.status"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: resource
path: "/journal/submission/guidelines/lookup/{{input_id}}"
inputParameters:
- name: input_id
in: path
operations:
- name: journal-submission-guidelines-lookup
method: GET
Orchestrates journal sustainability reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Journal Sustainability Reporting Pipeline"
description: "Orchestrates journal sustainability reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- journal
- springernature
- teams
- sendgrid
- confluence
capability:
exposes:
- type: mcp
namespace: journal
port: 8080
tools:
- name: journal-sustainability-reporting-pipeline
description: "Orchestrates journal sustainability reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "teams.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "sendgrid.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "confluence.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/journal"
operations:
- name: execute-1
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/journal"
operations:
- name: execute-2
method: POST
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/journal"
operations:
- name: execute-3
method: POST
Takes a published article's metadata and creates a promotional post on the Springer Nature LinkedIn company page.
naftiko: "0.5"
info:
label: "LinkedIn Article Promotion Publisher"
description: "Takes a published article's metadata and creates a promotional post on the Springer Nature LinkedIn company page."
tags:
- marketing
- linkedin
- publishing
capability:
exposes:
- type: mcp
namespace: social-promotion
port: 8080
tools:
- name: promote-article-linkedin
description: "Post a promotional update about a newly published article on LinkedIn."
inputParameters:
- name: article_doi
in: body
type: string
description: "The DOI of the published article."
- name: promotional_text
in: body
type: string
description: "The promotional text to accompany the post."
steps:
- name: get-article
type: call
call: "springerlink.get-article"
with:
doi: "{{article_doi}}"
- name: post-to-linkedin
type: call
call: "linkedin.create-share"
with:
text: "{{promotional_text}} - {{get-article.title}} by {{get-article.authors}}. Read more: https://doi.org/{{article_doi}}"
consumes:
- type: http
namespace: springerlink
baseUri: "https://api.springernature.com/meta/v2"
authentication:
type: apiKey
key: "$secrets.springernature_api_key"
resources:
- name: articles
path: "/json?q=doi:{{doi}}"
inputParameters:
- name: doi
in: query
operations:
- name: get-article
method: GET
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: shares
path: "/shares"
operations:
- name: create-share
method: POST
Orchestrates manuscript production pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Manuscript Production Pipeline"
description: "Orchestrates manuscript production pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- manuscript
- springernature
- jira
- teams
- sendgrid
capability:
exposes:
- type: mcp
namespace: manuscript
port: 8080
tools:
- name: manuscript-production-pipeline
description: "Orchestrates manuscript production pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "jira.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "teams.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "sendgrid.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/manuscript"
operations:
- name: execute-1
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/manuscript"
operations:
- name: execute-2
method: POST
- type: http
namespace: sendgrid
baseUri: "https://api.sendgrid.com/v3"
authentication:
type: bearer
token: "$secrets.sendgrid_api_key"
resources:
- name: sendgrid-resource
path: "/api/manuscript"
operations:
- name: execute-3
method: POST
Queries the manuscript submission system for the current status of a paper by its manuscript ID, returning stage, editor, and timeline information.
naftiko: "0.5"
info:
label: "Manuscript Submission Status Lookup"
description: "Queries the manuscript submission system for the current status of a paper by its manuscript ID, returning stage, editor, and timeline information."
tags:
- publishing
- manuscripts
- editorial
capability:
exposes:
- type: mcp
namespace: editorial
port: 8080
tools:
- name: get-manuscript-status
description: "Look up the current status of a manuscript submission by ID."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript submission ID."
call: "editorial-api.get-manuscript"
with:
id: "{{manuscript_id}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: manuscripts
path: "/manuscripts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-manuscript
method: GET
Orchestrates manuscript submission triage pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Manuscript Submission Triage Pipeline"
description: "Orchestrates manuscript submission triage pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- manuscript
- springernature
- springernature
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: manuscript
port: 8080
tools:
- name: manuscript-submission-triage-pipeline
description: "Orchestrates manuscript submission triage pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "springernature.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "salesforce.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "servicenow.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/manuscript"
operations:
- name: execute-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/manuscript"
operations:
- name: execute-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/manuscript"
operations:
- name: execute-3
method: POST
Appends monthly subscription revenue data to a Microsoft Excel spreadsheet via the Graph API for finance tracking.
naftiko: "0.5"
info:
label: "Microsoft Excel Subscription Revenue Tracker"
description: "Appends monthly subscription revenue data to a Microsoft Excel spreadsheet via the Graph API for finance tracking."
tags:
- finance
- subscriptions
- microsoft-excel
capability:
exposes:
- type: mcp
namespace: revenue-tracking
port: 8080
tools:
- name: log-subscription-revenue
description: "Append monthly subscription revenue data to the finance tracking spreadsheet."
inputParameters:
- name: month
in: body
type: string
description: "The month in YYYY-MM format."
- name: collection_name
in: body
type: string
description: "The subscription collection name."
- name: revenue
in: body
type: string
description: "The monthly revenue amount."
call: "excel.append-row"
with:
workbook_id: "subscription_revenue"
sheet_name: "MonthlyRevenue"
values:
- "{{month}}"
- "{{collection_name}}"
- "{{revenue}}"
consumes:
- type: http
namespace: excel
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: worksheets
path: "/me/drive/items/{{workbook_id}}/workbook/worksheets/{{sheet_name}}/tables/1/rows/add"
inputParameters:
- name: workbook_id
in: path
- name: sheet_name
in: path
operations:
- name: append-row
method: POST
Sends an editorial notification message to a specified Microsoft Teams channel for the publishing team.
naftiko: "0.5"
info:
label: "Microsoft Teams Editorial Alert"
description: "Sends an editorial notification message to a specified Microsoft Teams channel for the publishing team."
tags:
- editorial
- microsoft-teams
- notifications
capability:
exposes:
- type: mcp
namespace: editorial-alerts
port: 8080
tools:
- name: send-editorial-alert
description: "Send a notification to the editorial Microsoft Teams channel."
inputParameters:
- name: message
in: body
type: string
description: "The notification message."
- name: channel
in: body
type: string
description: "The Teams channel name (e.g., journal-updates, manuscript-alerts)."
call: "msteams.send-channel-message"
with:
team_id: "editorial_team"
channel_id: "{{channel}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves application performance metrics from New Relic for SpringerLink and Nature.com platforms.
naftiko: "0.5"
info:
label: "New Relic Platform Performance"
description: "Retrieves application performance metrics from New Relic for SpringerLink and Nature.com platforms."
tags:
- monitoring
- new-relic
- performance
capability:
exposes:
- type: mcp
namespace: platform-perf
port: 8080
tools:
- name: get-platform-performance
description: "Get performance metrics from New Relic for a Springer Nature platform application."
inputParameters:
- name: app_name
in: body
type: string
description: "The application name in New Relic."
call: "newrelic.get-app-summary"
with:
app: "{{app_name}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications.json?filter[name]={{app}}"
inputParameters:
- name: app
in: query
operations:
- name: get-app-summary
method: GET
Processes an accepted manuscript for open access publication by assigning a DOI, updating metadata in Crossref, setting the Creative Commons license, and notifying the author via email.
naftiko: "0.5"
info:
label: "Open Access Article Publisher"
description: "Processes an accepted manuscript for open access publication by assigning a DOI, updating metadata in Crossref, setting the Creative Commons license, and notifying the author via email."
tags:
- open-access
- publishing
- doi
- mailchimp
capability:
exposes:
- type: mcp
namespace: open-access
port: 8080
tools:
- name: publish-open-access
description: "Process an accepted manuscript for OA publication including DOI registration, metadata deposit, and author notification."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID."
- name: license_type
in: body
type: string
description: "The Creative Commons license type (e.g., CC-BY, CC-BY-NC)."
steps:
- name: get-manuscript
type: call
call: "editorial-api.get-manuscript"
with:
id: "{{manuscript_id}}"
- name: register-doi
type: call
call: "doi-api.register-doi"
with:
title: "{{get-manuscript.title}}"
authors: "{{get-manuscript.authors}}"
journal: "{{get-manuscript.journal}}"
license: "{{license_type}}"
- name: deposit-metadata
type: call
call: "crossref.deposit-metadata"
with:
doi: "{{register-doi.doi}}"
metadata: "{{get-manuscript}}"
- name: notify-author
type: call
call: "mailchimp.send-transactional"
with:
template_name: "oa_publication_confirmation"
to_email: "{{get-manuscript.corresponding_author_email}}"
merge_vars:
title: "{{get-manuscript.title}}"
doi: "{{register-doi.doi}}"
license: "{{license_type}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: manuscripts
path: "/manuscripts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-manuscript
method: GET
- type: http
namespace: doi-api
baseUri: "https://api.springernature.com/doi/v1"
authentication:
type: bearer
token: "$secrets.springernature_doi_token"
resources:
- name: dois
path: "/register"
operations:
- name: register-doi
method: POST
- type: http
namespace: crossref
baseUri: "https://api.crossref.org"
authentication:
type: basic
username: "$secrets.crossref_user"
password: "$secrets.crossref_password"
resources:
- name: deposits
path: "/deposits"
operations:
- name: deposit-metadata
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Orchestrates open access compliance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Open Access Compliance Pipeline"
description: "Orchestrates open access compliance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- open
- springernature
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: open
port: 8080
tools:
- name: open-access-compliance-pipeline
description: "Orchestrates open access compliance pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/open"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/open"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/open"
operations:
- name: execute-3
method: POST
When a manuscript is ready for review, searches for suitable reviewers in the reviewer database, sends invitation emails via MailChimp, and creates tracking entries in Salesforce.
naftiko: "0.5"
info:
label: "Peer Review Assignment Orchestrator"
description: "When a manuscript is ready for review, searches for suitable reviewers in the reviewer database, sends invitation emails via MailChimp, and creates tracking entries in Salesforce."
tags:
- peer-review
- editorial
- mailchimp
- salesforce
capability:
exposes:
- type: mcp
namespace: peer-review
port: 8080
tools:
- name: assign-reviewers
description: "Find and invite peer reviewers for a manuscript, tracking invitations in Salesforce."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript submission ID."
- name: subject_area
in: body
type: string
description: "The subject area or discipline of the manuscript."
- name: reviewer_count
in: body
type: integer
description: "The number of reviewers to invite."
steps:
- name: get-manuscript
type: call
call: "editorial-api.get-manuscript"
with:
id: "{{manuscript_id}}"
- name: find-reviewers
type: call
call: "reviewer-api.search-reviewers"
with:
subject: "{{subject_area}}"
count: "{{reviewer_count}}"
exclude_authors: "{{get-manuscript.author_ids}}"
- name: send-invitations
type: call
call: "mailchimp.send-transactional"
with:
template_name: "reviewer_invitation"
recipients: "{{find-reviewers.reviewer_emails}}"
merge_vars:
manuscript_title: "{{get-manuscript.title}}"
journal_name: "{{get-manuscript.journal}}"
- name: track-invitations
type: call
call: "salesforce.create-records"
with:
object: "Review_Invitation__c"
records: "{{find-reviewers.reviewer_ids}}"
manuscript_id: "{{manuscript_id}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: manuscripts
path: "/manuscripts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-manuscript
method: GET
- type: http
namespace: reviewer-api
baseUri: "https://api.springernature.com/reviewers/v1"
authentication:
type: bearer
token: "$secrets.springernature_reviewer_token"
resources:
- name: reviewers
path: "/search"
operations:
- name: search-reviewers
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: records
path: "/sobjects/{{object}}"
inputParameters:
- name: object
in: path
operations:
- name: create-records
method: POST
Orchestrates peer reviewer matching pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Peer Reviewer Matching Pipeline"
description: "Orchestrates peer reviewer matching pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- peer
- springernature
- salesforce
- servicenow
- snowflake
capability:
exposes:
- type: mcp
namespace: peer
port: 8080
tools:
- name: peer-reviewer-matching-pipeline
description: "Orchestrates peer reviewer matching pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "salesforce.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "servicenow.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "snowflake.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/peer"
operations:
- name: execute-1
method: POST
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/peer"
operations:
- name: execute-2
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/peer"
operations:
- name: execute-3
method: POST
Submits a manuscript to the plagiarism detection service, retrieves the similarity report, and updates the editorial system with the results.
naftiko: "0.5"
info:
label: "Plagiarism Check Orchestrator"
description: "Submits a manuscript to the plagiarism detection service, retrieves the similarity report, and updates the editorial system with the results."
tags:
- peer-review
- quality
- editorial
capability:
exposes:
- type: mcp
namespace: integrity
port: 8080
tools:
- name: run-plagiarism-check
description: "Submit a manuscript for plagiarism checking and update the editorial record with results."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID to check."
steps:
- name: get-manuscript
type: call
call: "editorial-api.get-manuscript-content"
with:
id: "{{manuscript_id}}"
- name: submit-check
type: call
call: "plagiarism-api.submit-document"
with:
content: "{{get-manuscript.full_text}}"
title: "{{get-manuscript.title}}"
- name: update-editorial
type: call
call: "editorial-api.update-manuscript"
with:
id: "{{manuscript_id}}"
plagiarism_score: "{{submit-check.similarity_score}}"
plagiarism_report_url: "{{submit-check.report_url}}"
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: manuscript-content
path: "/manuscripts/{{id}}/content"
inputParameters:
- name: id
in: path
operations:
- name: get-manuscript-content
method: GET
- name: manuscripts
path: "/manuscripts/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: update-manuscript
method: PATCH
- type: http
namespace: plagiarism-api
baseUri: "https://api.springernature.com/integrity/v1"
authentication:
type: bearer
token: "$secrets.springernature_integrity_token"
resources:
- name: submissions
path: "/submissions"
operations:
- name: submit-document
method: POST
Orchestrates preprint to publication pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Preprint To Publication Pipeline"
description: "Orchestrates preprint to publication pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- preprint
- springernature
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: preprint
port: 8080
tools:
- name: preprint-to-publication-pipeline
description: "Orchestrates preprint to publication pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/preprint"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/preprint"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/preprint"
operations:
- name: execute-3
method: POST
Tracks the production status of articles through typesetting, proofing, and publication stages in the production management system.
naftiko: "0.5"
info:
label: "Production Pipeline Tracker"
description: "Tracks the production status of articles through typesetting, proofing, and publication stages in the production management system."
tags:
- publishing
- production
- workflow
capability:
exposes:
- type: mcp
namespace: production
port: 8080
tools:
- name: get-production-status
description: "Get the current production pipeline status for an article by manuscript ID."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID."
call: "production-api.get-status"
with:
id: "{{manuscript_id}}"
consumes:
- type: http
namespace: production-api
baseUri: "https://api.springernature.com/production/v1"
authentication:
type: bearer
token: "$secrets.springernature_production_token"
resources:
- name: articles
path: "/articles/{{id}}/status"
inputParameters:
- name: id
in: path
operations:
- name: get-status
method: GET
When author proofs are ready, retrieves the production status, uploads proofs to Box, and sends a notification to the author via MailChimp with the proof link.
naftiko: "0.5"
info:
label: "Proof Correction Notification Orchestrator"
description: "When author proofs are ready, retrieves the production status, uploads proofs to Box, and sends a notification to the author via MailChimp with the proof link."
tags:
- production
- proofing
- box
- mailchimp
capability:
exposes:
- type: mcp
namespace: proofing
port: 8080
tools:
- name: send-proof-notification
description: "Upload proofs to Box and notify the author with a download link."
inputParameters:
- name: manuscript_id
in: body
type: string
description: "The manuscript ID."
- name: proof_deadline
in: body
type: string
description: "The proof return deadline in YYYY-MM-DD format."
steps:
- name: get-production
type: call
call: "production-api.get-status"
with:
id: "{{manuscript_id}}"
- name: upload-proof
type: call
call: "box.upload-file"
with:
folder_id: "proofs"
file_name: "{{manuscript_id}}_proof.pdf"
content: "{{get-production.proof_content}}"
- name: notify-author
type: call
call: "mailchimp.send-transactional"
with:
template_name: "proof_notification"
to_email: "{{get-production.author_email}}"
merge_vars:
author_name: "{{get-production.author_name}}"
article_title: "{{get-production.title}}"
proof_link: "{{upload-proof.shared_link}}"
deadline: "{{proof_deadline}}"
consumes:
- type: http
namespace: production-api
baseUri: "https://api.springernature.com/production/v1"
authentication:
type: bearer
token: "$secrets.springernature_production_token"
resources:
- name: articles
path: "/articles/{{id}}/status"
inputParameters:
- name: id
in: path
operations:
- name: get-status
method: GET
- type: http
namespace: box
baseUri: "https://upload.box.com/api/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files/content"
operations:
- name: upload-file
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Orchestrates research collaboration network pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Research Collaboration Network Pipeline"
description: "Orchestrates research collaboration network pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- research
- springernature
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: research
port: 8080
tools:
- name: research-collaboration-network-pipeline
description: "Orchestrates research collaboration network pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/research"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/research"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/research"
operations:
- name: execute-3
method: POST
Orchestrates research data curation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Research Data Curation Pipeline"
description: "Orchestrates research data curation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- research
- springernature
- confluence
- datadog
- springernature
capability:
exposes:
- type: mcp
namespace: research
port: 8080
tools:
- name: research-data-curation-pipeline
description: "Orchestrates research data curation pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "confluence.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "springernature.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/research"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/research"
operations:
- name: execute-2
method: POST
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/research"
operations:
- name: execute-3
method: POST
Deposits supplementary research data files to the research data repository and links them to the published article DOI.
naftiko: "0.5"
info:
label: "Research Data Repository Deposit"
description: "Deposits supplementary research data files to the research data repository and links them to the published article DOI."
tags:
- research-data
- publishing
- doi
capability:
exposes:
- type: mcp
namespace: research-data
port: 8080
tools:
- name: deposit-research-data
description: "Upload research data to the repository and link it to the article DOI."
inputParameters:
- name: article_doi
in: body
type: string
description: "The article DOI to link the data to."
- name: data_package_url
in: body
type: string
description: "The URL of the data package to deposit."
- name: description
in: body
type: string
description: "Description of the research data."
steps:
- name: deposit-data
type: call
call: "data-repo.create-deposit"
with:
source_url: "{{data_package_url}}"
description: "{{description}}"
related_doi: "{{article_doi}}"
- name: link-to-article
type: call
call: "editorial-api.add-data-link"
with:
doi: "{{article_doi}}"
data_doi: "{{deposit-data.data_doi}}"
data_url: "{{deposit-data.access_url}}"
consumes:
- type: http
namespace: data-repo
baseUri: "https://api.springernature.com/data-repository/v1"
authentication:
type: bearer
token: "$secrets.springernature_data_repo_token"
resources:
- name: deposits
path: "/deposits"
operations:
- name: create-deposit
method: POST
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: data-links
path: "/articles/{{doi}}/data-links"
inputParameters:
- name: doi
in: path
operations:
- name: add-data-link
method: POST
Orchestrates research impact reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Research Impact Reporting Pipeline"
description: "Orchestrates research impact reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- research
- springernature
- confluence
- datadog
- springernature
capability:
exposes:
- type: mcp
namespace: research
port: 8080
tools:
- name: research-impact-reporting-pipeline
description: "Orchestrates research impact reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "confluence.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "datadog.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "springernature.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: confluence-resource
path: "/api/research"
operations:
- name: execute-1
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/research"
operations:
- name: execute-2
method: POST
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/research"
operations:
- name: execute-3
method: POST
Orchestrates research integrity screening pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Research Integrity Screening Pipeline"
description: "Orchestrates research integrity screening pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- research
- springernature
- datadog
- springernature
- salesforce
capability:
exposes:
- type: mcp
namespace: research
port: 8080
tools:
- name: research-integrity-screening-pipeline
description: "Orchestrates research integrity screening pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "datadog.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "springernature.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "salesforce.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: datadog-resource
path: "/api/research"
operations:
- name: execute-1
method: POST
- type: http
namespace: springernature
baseUri: "https://api.springernature.com/v2"
authentication:
type: bearer
token: "$secrets.springer_api_token"
resources:
- name: springernature-resource
path: "/api/research"
operations:
- name: execute-2
method: POST
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: salesforce-resource
path: "/api/research"
operations:
- name: execute-3
method: POST
Processes a retraction by updating the article metadata, depositing a retraction notice with Crossref, notifying the author, and alerting the editorial team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Retraction Notice Publisher"
description: "Processes a retraction by updating the article metadata, depositing a retraction notice with Crossref, notifying the author, and alerting the editorial team via Microsoft Teams."
tags:
- publishing
- integrity
- editorial
- mailchimp
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: retractions
port: 8080
tools:
- name: process-retraction
description: "Process a full article retraction including metadata update, Crossref deposit, author notification, and team alert."
inputParameters:
- name: article_doi
in: body
type: string
description: "The DOI of the article to retract."
- name: retraction_reason
in: body
type: string
description: "The reason for the retraction."
steps:
- name: get-article
type: call
call: "editorial-api.get-article-by-doi"
with:
doi: "{{article_doi}}"
- name: update-metadata
type: call
call: "editorial-api.retract-article"
with:
doi: "{{article_doi}}"
reason: "{{retraction_reason}}"
- name: deposit-retraction
type: call
call: "crossref.deposit-retraction"
with:
doi: "{{article_doi}}"
reason: "{{retraction_reason}}"
- name: notify-author
type: call
call: "mailchimp.send-transactional"
with:
template_name: "retraction_notice"
to_email: "{{get-article.corresponding_author_email}}"
merge_vars:
title: "{{get-article.title}}"
reason: "{{retraction_reason}}"
- name: alert-team
type: call
call: "msteams.send-channel-message"
with:
team_id: "editorial_team"
channel_id: "integrity_alerts"
text: "Retraction processed: {{get-article.title}} ({{article_doi}}). Reason: {{retraction_reason}}."
consumes:
- type: http
namespace: editorial-api
baseUri: "https://api.springernature.com/editorial/v1"
authentication:
type: bearer
token: "$secrets.springernature_editorial_token"
resources:
- name: articles
path: "/articles/{{doi}}"
inputParameters:
- name: doi
in: path
operations:
- name: get-article-by-doi
method: GET
- name: retract-article
method: DELETE
- type: http
namespace: crossref
baseUri: "https://api.crossref.org"
authentication:
type: basic
username: "$secrets.crossref_user"
password: "$secrets.crossref_password"
resources:
- name: retractions
path: "/deposits"
operations:
- name: deposit-retraction
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mailchimp_transactional_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Retrieves a reviewer's historical performance data including average review time, acceptance rate, and quality scores.
naftiko: "0.5"
info:
label: "Reviewer Performance Metrics"
description: "Retrieves a reviewer's historical performance data including average review time, acceptance rate, and quality scores."
tags:
- peer-review
- analytics
- reviewers
capability:
exposes:
- type: mcp
namespace: reviewer-metrics
port: 8080
tools:
- name: get-reviewer-performance
description: "Get historical performance metrics for a peer reviewer."
inputParameters:
- name: reviewer_id
in: body
type: string
description: "The reviewer identifier."
call: "reviewer-api.get-metrics"
with:
id: "{{reviewer_id}}"
consumes:
- type: http
namespace: reviewer-api
baseUri: "https://api.springernature.com/reviewers/v1"
authentication:
type: bearer
token: "$secrets.springernature_reviewer_token"
resources:
- name: metrics
path: "/reviewers/{{id}}/metrics"
inputParameters:
- name: id
in: path
operations:
- name: get-metrics
method: GET
Orchestrates reviewer recognition program pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Reviewer Recognition Program Pipeline"
description: "Orchestrates reviewer recognition program pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- reviewer
- springernature
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: reviewer
port: 8080
tools:
- name: reviewer-recognition-program-pipeline
description: "Orchestrates reviewer recognition program pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "servicenow.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "snowflake.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "slack.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://springernature.service-now.com/api/now"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: servicenow-resource
path: "/api/reviewer"
operations:
- name: execute-1
method: POST
- type: http
namespace: snowflake
baseUri: "https://springernature.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: snowflake-resource
path: "/api/reviewer"
operations:
- name: execute-2
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/reviewer"
operations:
- name: execute-3
method: POST
Searches for an institutional account in Salesforce by name or identifier, returning account details and subscription history.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Searches for an institutional account in Salesforce by name or identifier, returning account details and subscription history."
tags:
- sales
- salesforce
- subscriptions
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: lookup-account
description: "Search for an institutional account in Salesforce by name."
inputParameters:
- name: institution_name
in: body
type: string
description: "The institution name to search for."
call: "salesforce.search-accounts"
with:
query: "{{institution_name}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://springernature.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/search?q={{query}}"
inputParameters:
- name: query
in: query
operations:
- name: search-accounts
method: GET
Retrieves an expense report from SAP Concur by report ID, returning status, total amount, and line items.
naftiko: "0.5"
info:
label: "SAP Concur Expense Report Lookup"
description: "Retrieves an expense report from SAP Concur by report ID, returning status, total amount, and line items."
tags:
- finance
- sap-concur
- expenses
capability:
exposes:
- type: mcp
namespace: expenses
port: 8080
tools:
- name: get-expense-report
description: "Look up an expense report in SAP Concur by report ID."
inputParameters:
- name: report_id
in: body
type: string
description: "The SAP Concur expense report ID."
call: "concur.get-report"
with:
id: "{{report_id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-report
method: GET
Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery date.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery date."
tags:
- procurement
- sap
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order by PO number."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://sap.springernature.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Creates a new IT support ticket in ServiceNow with specified category, priority, and description.
naftiko: "0.5"
info:
label: "ServiceNow IT Ticket Creator"
description: "Creates a new IT support ticket in ServiceNow with specified category, priority, and description."
tags:
- it-support
- servicenow
capability:
exposes:
- type: mcp
namespace: it-support
port: 8080
tools:
- name: create-it-ticket
description: "Create a new ServiceNow IT support incident."
inputParameters:
- name: short_description
in: body
type: string
description: "Brief description of the issue."
- name: category
in: body
type: string
description: "The incident category."
- name: priority
in: body
type: string
description: "The incident priority (1-Critical, 2-High, 3-Medium, 4-Low)."
call: "servicenow.create-incident"
with:
short_description: "{{short_description}}"
category: "{{category}}"
priority: "{{priority}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://springernature.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
Retrieves a document from the Springer Nature SharePoint document library by file path.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Retrieves a document from the Springer Nature SharePoint document library by file path."
tags:
- documents
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-retrieval
port: 8080
tools:
- name: get-sharepoint-document
description: "Retrieve a document from SharePoint by site and file path."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site identifier."
- name: file_path
in: body
type: string
description: "The file path within the document library."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{path}}"
inputParameters:
- name: site_id
in: path
- name: path
in: path
operations:
- name: get-file
method: GET
Queries SolarWinds for the health status of network infrastructure supporting Springer Nature digital platforms.
naftiko: "0.5"
info:
label: "SolarWinds Network Health Monitor"
description: "Queries SolarWinds for the health status of network infrastructure supporting Springer Nature digital platforms."
tags:
- infrastructure
- solarwinds
- network
capability:
exposes:
- type: mcp
namespace: network-health
port: 8080
tools:
- name: get-network-health
description: "Get network device health status from SolarWinds."
inputParameters:
- name: node_group
in: body
type: string
description: "The SolarWinds node group name."
call: "solarwinds.get-node-status"
with:
group: "{{node_group}}"
consumes:
- type: http
namespace: solarwinds
baseUri: "https://solarwinds.springernature.com/SolarWinds/InformationService/v3/Json"
authentication:
type: basic
username: "$secrets.solarwinds_user"
password: "$secrets.solarwinds_password"
resources:
- name: nodes
path: "/Query?query=SELECT+NodeName,Status+FROM+Orion.Nodes+WHERE+GroupName='{{group}}'"
inputParameters:
- name: group
in: query
operations:
- name: get-node-status
method: GET
Creates a special issue plan by setting up a Jira epic, creating a Confluence planning page, and notifying guest editors via Microsoft Teams.
naftiko: "0.5"
info:
label: "Special Issue Planning Orchestrator"
description: "Creates a special issue plan by setting up a Jira epic, creating a Confluence planning page, and notifying guest editors via Microsoft Teams."
tags:
- editorial
- planning
- jira
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: special-issues
port: 8080
tools:
- name: plan-special-issue
description: "Set up the project infrastructure for a new special issue including Jira epic, Confluence page, and guest editor notifications."
inputParameters:
- name: journal_id
in: body
type: string
description: "The journal identifier."
- name: issue_title
in: body
type: string
description: "The special issue title."
- name: guest_editor_emails
in: body
type: array
description: "List of guest editor email addresses."
- name: deadline
in: body
type: string
description: "The submission deadline in YYYY-MM-DD format."
steps:
- name: create-epic
type: call
call: "jira.create-issue"
with:
project: "EDIT"
summary: "Special Issue: {{issue_title}}"
issuetype: "Epic"
description: "Journal: {{journal_id}}. Deadline: {{deadline}}."
- name: create-wiki
type: call
call: "confluence.create-page"
with:
space_key: "EDITORIAL"
title: "Special Issue: {{issue_title}}"
body: "Journal: {{journal_id}}\nDeadline: {{deadline}}\nJira Epic: {{create-epic.key}}"
- name: notify-editors
type: call
call: "msteams.send-channel-message"
with:
team_id: "editorial_team"
channel_id: "special_issues"
text: "New special issue planned: {{issue_title}} for {{journal_id}}. Deadline: {{deadline}}. Jira: {{create-epic.key}}."
consumes:
- type: http
namespace: jira
baseUri: "https://springernature.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: confluence
baseUri: "https://springernature.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-channel-message
method: POST
Searches the SpringerLink content API for articles matching a query, returning titles, authors, DOIs, and abstracts.
naftiko: "0.5"
info:
label: "Springer Link Article Search"
description: "Searches the SpringerLink content API for articles matching a query, returning titles, authors, DOIs, and abstracts."
tags:
- publishing
- search
- content
capability:
exposes:
- type: mcp
namespace: content-search
port: 8080
tools:
- name: search-articles
description: "Search SpringerLink for articles matching a keyword or topic query."
inputParameters:
- name: query
in: body
type: string
description: "The search query."
- name: subject
in: body
type: string
description: "Optional subject area filter."
call: "springerlink.search"
with:
q: "{{query}}"
subject: "{{subject}}"
consumes:
- type: http
namespace: springerlink
baseUri: "https://api.springernature.com/meta/v2"
authentication:
type: apiKey
key: "$secrets.springernature_api_key"
resources:
- name: articles
path: "/json?q={{q}}&subject={{subject}}"
inputParameters:
- name: q
in: query
- name: subject
in: query
operations:
- name: search
method: GET
Checks whether an institution has an active subscription to a specific journal or content collection in the subscription management system.
naftiko: "0.5"
info:
label: "Subscription License Validator"
description: "Checks whether an institution has an active subscription to a specific journal or content collection in the subscription management system."
tags:
- subscriptions
- licensing
- access
capability:
exposes:
- type: mcp
namespace: subscriptions
port: 8080
tools:
- name: validate-subscription
description: "Check whether an institution has active access to a journal or collection."
inputParameters:
- name: institution_id
in: body
type: string
description: "The institution identifier."
- name: journal_id
in: body
type: string
description: "The journal or collection identifier."
call: "subscription-api.check-access"
with:
institution: "{{institution_id}}"
journal: "{{journal_id}}"
consumes:
- type: http
namespace: subscription-api
baseUri: "https://api.springernature.com/subscriptions/v1"
authentication:
type: bearer
token: "$secrets.springernature_subscription_token"
resources:
- name: access
path: "/access?institution={{institution}}&journal={{journal}}"
inputParameters:
- name: institution
in: query
- name: journal
in: query
operations:
- name: check-access
method: GET
Orchestrates transformative agreement reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders.
naftiko: "0.5"
info:
label: "Transformative Agreement Reporting Pipeline"
description: "Orchestrates transformative agreement reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
tags:
- transformative
- springernature
- slack
- jira
- teams
capability:
exposes:
- type: mcp
namespace: transformative
port: 8080
tools:
- name: transformative-agreement-reporting-pipeline
description: "Orchestrates transformative agreement reporting pipeline across academic publishing systems, coordinating multiple services and notifying stakeholders."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
steps:
- name: step-1
type: call
call: "slack.execute-1"
with:
input: "{{input_id}}"
- name: step-2
type: call
call: "jira.execute-2"
with:
input: "{{input_id}}"
- name: step-3
type: call
call: "teams.execute-3"
with:
input: "{{input_id}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: slack-resource
path: "/api/transformative"
operations:
- name: execute-1
method: POST
- type: http
namespace: jira
baseUri: "https://springernature.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: jira-resource
path: "/api/transformative"
operations:
- name: execute-2
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: teams-resource
path: "/api/transformative"
operations:
- name: execute-3
method: POST
Retrieves the status and utilization of a transformative agreement (Read & Publish deal) for an institution.
naftiko: "0.5"
info:
label: "Transformative Agreement Tracker"
description: "Retrieves the status and utilization of a transformative agreement (Read & Publish deal) for an institution."
tags:
- subscriptions
- open-access
- agreements
capability:
exposes:
- type: mcp
namespace: agreements
port: 8080
tools:
- name: get-agreement-status
description: "Get the status and utilization of a transformative agreement for an institution."
inputParameters:
- name: agreement_id
in: body
type: string
description: "The transformative agreement identifier."
call: "subscription-api.get-agreement"
with:
id: "{{agreement_id}}"
consumes:
- type: http
namespace: subscription-api
baseUri: "https://api.springernature.com/subscriptions/v1"
authentication:
type: bearer
token: "$secrets.springernature_subscription_token"
resources:
- name: agreements
path: "/agreements/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-agreement
method: GET
Posts a promotional tweet about a newly published article on the Springer Nature Twitter account.
naftiko: "0.5"
info:
label: "Twitter Article Promotion"
description: "Posts a promotional tweet about a newly published article on the Springer Nature Twitter account."
tags:
- marketing
- twitter
- social-media
capability:
exposes:
- type: mcp
namespace: twitter-promotion
port: 8080
tools:
- name: tweet-article
description: "Post a promotional tweet about a published article."
inputParameters:
- name: article_doi
in: body
type: string
description: "The article DOI."
- name: tweet_text
in: body
type: string
description: "The tweet text (max 280 characters)."
call: "twitter.create-tweet"
with:
text: "{{tweet_text}} https://doi.org/{{article_doi}}"
consumes:
- type: http
namespace: twitter
baseUri: "https://api.twitter.com/2"
authentication:
type: bearer
token: "$secrets.twitter_bearer_token"
resources:
- name: tweets
path: "/tweets"
operations:
- name: create-tweet
method: POST
Retrieves employee information from Workday by employee ID.
naftiko: "0.5"
info:
label: "Workday Employee Lookup"
description: "Retrieves employee information from Workday by employee ID."
tags:
- hr
- workday
- directory
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-employee
description: "Look up a Springer Nature employee in Workday by ID."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
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