The Switchboard Tool Registry
This repository hosts the registry of all tools used by the Switchboard (https://switchboard.clarin.eu).
The repository has two important branches:
productionis hosting the tools used by the production instance (https://switchboard.clarin.eu).
masteris the development branch, with the tools used by testing and development versions of the Switchboard. The staging instance is https://beta-switchboard.clarin.eu.
How to add a tool to the Switchboard
- Take any of the json files describing a service from the
toolsdirectory in the repository and rename it and modify it to describe your tool. The json file name must be descriptive and unique, and should match the tool name in the json file. The
logoentry in the file should contain your unique logo file name. See the Tool description specification for more detailed explanations on the meaning of each field.
- Add the new json file to a new branch in your own fork of the repository, in the
- Add the logo file to the same branch, in the
- Make sure that the new json file is correct according to the json schema defined in the specification file: spec-v1.schema.json. You can use one of the online schema validators (see https://json-schema.org/implementations.html#validators), or locally run the python script validate-all-tools.py in the
- Make sure your tool responds correctly when called by the Switchboard. See the Tool Call API for more detailed explanations on how a tool is called and what parameters are being sent to the tool.
- Create a pull request for merging your branch in the
masterbranch of this repository.
- After the pull request has been merged, check the availability of your tool in the development instance of the Switchboard: https://beta-switchboard.clarin.eu.
- If you are satisfied with how the tool is integrated, create a new issue requesting the publication of your changes from
production. Our team will do the merge and close the issue.
The Tool description specification provides more information on the json description of the tools.
For details on how a tool is matched for a specific resource, see the Tool Matching document.
For details on how a tool is actually invoked when selected by the user, see the Tool Call API document.