@Override
	public PluginTool launchToolWithURL(String toolName, URL ghidraUrl)
			throws IllegalArgumentException {
		if (!GhidraURL.isLocalProjectURL(ghidraUrl) &&
			!GhidraURL.isServerRepositoryURL(ghidraUrl)) {
			throw new IllegalArgumentException("unsupported URL");
		}
		ToolTemplate template = findToolChestToolTemplate(toolName);
		if (template == null) {
			return null;
		}
		Workspace workspace = toolManager.getActiveWorkspace();
		PluginTool tool = workspace.runTool(template);
		if (tool != null) {
			tool.accept(ghidraUrl);
		}
		return tool;
	}
Implementation of service used to manipulate tools.
Ghidra/Framework/Project/src/main/java/ghidra/framework/project/tool/ToolServicesImpl.java