Agent skill

Import Openapi Microservice

by microbus-io in microbus-io/fabric

TRIGGER when the user asks to delegate to or integrate an external/third-party REST API, import an OpenAPI/Swagger document, or generate a microservice from an OpenAPI spec (by URL or pasted…

Apache-2.0Auto-check passedBackend & APIs

Install Import Openapi Microservice

skills CLI
$ npx skills add microbus-io/fabric --skill import-openapi-microservice -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microbus-io/fabric import-openapi-microservice --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/microbus/import-openapi-microservice .claude/skills/import-openapi-microservice && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
import-openapi-microservice
GitHub stars
172
Token cost
~4k tokens
SKILL.md length
1,505 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

TRIGGER when the user asks to delegate to or integrate an external/third-party REST API, import an OpenAPI/Swagger document, or generate a microservice from an OpenAPI spec (by URL or pasted…

  • Works in 12 steps: Locate or Scaffold the Microservice → Acquire the OpenAPI Document → Generate openapispecs.json → …
  • The user asks to delegate to
  • Calls go and curl; reaches petstore3.swagger.io
  • Integrate an external/third-party REST API

What it does

Import Openapi Microservice is an agent skill from microbus-io/fabric. TRIGGER when the user asks to delegate to or integrate an external/third-party REST API, import an OpenAPI/Swagger document, or generate a microservice from an OpenAPI spec (by URL or pasted JSON/YAML). Produces a one-for-one delegating microservice and stores openapispecs.json in its directory so more endpoints can be imported later.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering OpenAPI specifications and Microservices. It works with OpenAPI. The repository describes itself as: Microbus is the only fabric where every agentic workflow runs on a true microservice substrate - giving your workflows security, scale, observability, and prompt-driven authoring. The licence is Apache-2.0.

When your agent uses it

  • The user asks to delegate to
  • Integrate an external/third-party REST API
  • Import an OpenAPI/Swagger document
  • Generate a microservice from an OpenAPI spec (by URL

Example prompts

  • “/import-openapi-microservice”

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Locate or Scaffold the Microservice
  2. Acquire the OpenAPI Document
  3. Generate openapispecs.json
  4. Add the Base-URL and Credential Configs
  5. Add the Shared Request Helpers (Once)
  6. Select Which Endpoints to Import
  7. Generate the Complex Types
  8. Declare the Endpoints in definition.go
  9. Generate the Boilerplate
  10. Implement the Handler Bodies
  11. Wire the HTTP Egress Proxy Into the App
  12. Housekeeping

What it can do on your machine

Read from SKILL.md and the folder at commit fb98098. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • petstore3.swagger.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Import Openapi Microservice loads about 4k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 1,505 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microbus-io/fabric at commit fb98098, republished under its Apache-2.0 licence (© microbus-io). 1,505 words, ~4,050 tokens.

Download SKILL.mdSave it as .claude/skills/import-openapi-microservice/SKILL.md (or your agent's skills folder).
name
import-openapi-microservice
description
TRIGGER when the user asks to delegate to or integrate an external/third-party REST API, import an OpenAPI/Swagger document, or generate a microservice from an OpenAPI spec (by URL or pasted JSON/YAML). Produces a one-for-one delegating microservice and stores openapispecs.json in its directory so more endpoints can be imported later.

CRITICAL: This skill does NOT define the shape of generated code. It delegates every feature to the add-microservice, add-function, add-web, and add-config skills, the single source of truth for code shape. This skill only scaffolds the microservice, produces the specs file, picks endpoints, and fills the one-line delegation body.

CRITICAL: The microservice is a faithful one-for-one delegator. Do NOT reshape the remote API: never split a request body into separate arguments, rename routes, or collapse status codes. Body-bearing operations use the magic HTTP arguments so the microservice is byte-transparent to its callers.

CRITICAL: openapispecs.json lives in the microservice's directory and is tracked in source control (never git-ignored). It is the durable record of the remote API. Re-running this skill imports more endpoints from the present specs without re-fetching, and skips endpoints already scaffolded.

Workflow

Copy this checklist and track your progress:

- [ ] Step 1: Locate or scaffold the microservice
- [ ] Step 2: Acquire the OpenAPI document
- [ ] Step 3: Generate openapispecs.json
- [ ] Step 4: Add the base-URL and credential configs
- [ ] Step 5: Add the shared request helpers (once)
- [ ] Step 6: Select which endpoints to import
- [ ] Step 7: Generate the complex types
- [ ] Step 8: Declare the endpoints in definition.go
- [ ] Step 9: Generate the boilerplate
- [ ] Step 10: Implement the handler bodies
- [ ] Step 11: Wire the HTTP egress proxy into the app
- [ ] Step 12: Housekeeping

The placeholders myservice, MyService, myserviceapi stand for the microservice being generated.

Step 1: Locate or Scaffold the Microservice

If a delegator for this API already exists, its openapispecs.json and local CLAUDE.md record what is already imported. If the user only wants more endpoints, skip to Step 6 (the specs are already present; do not re-fetch unless the user wants a newer version of the document).

Otherwise follow the add-microservice skill. Name the microservice after the remote API itself (petstore, not petstorewrap/petstoreproxy/petstoreclient): in the mesh this microservice is that API's representation, and a suffix leaks an implementation detail into a hostname every caller sees. "Delegator" describes what it does, never what it is named. Give it a one-line description (MyService delegates to the Petstore API.); Step 3 appends the API's own overview.

Step 2: Acquire the OpenAPI Document

Place the document in the microservice directory as myservice/openapi.src:

  • By URL: curl -fsSL '<url>' -o myservice/openapi.src. Remember the URL for Step 3.
  • Pasted: write the pasted content verbatim to myservice/openapi.src.

Do not hand-edit it. JSON and YAML are both accepted.

Step 3: Generate openapispecs.json
shell
go run github.com/microbus-io/fabric/cmd/genopenapispecs -base-url 'ORIGIN' < myservice/openapi.src > myservice/openapispecs.json
rm myservice/openapi.src

The tool is a pure offline filter (stdin to stdout; never touches the network).

-base-url is optional and defaults to the document's first servers URL. Real documents often declare a relative server (e.g. /api/v3); the tool then warns on stderr. Set -base-url to that URL's origin (scheme://host) joined with the relative server path, e.g. https://petstore3.swagger.io/api/v3. If the document was pasted with no absolute server and you have no URL, ask the user for the base URL.

The specs file has info, remote{baseURL,security}, types{} (raw JSON Schema keyed by name), and endpoints[] (each with name, feature, method, route, summary, description, params, requestBody, response). feature is function (JSON or empty body) or web (non-JSON body); trust it unless an endpoint is obviously misclassified.

If the specs info.description is non-empty, append it to the Service godoc and svc.SetDescription after the one-line summary from Step 1, separated by a blank line so it renders as a second godoc paragraph.

Step 4: Add the Base-URL and Credential Configs

Follow the add-config skill:

  1. RemoteBaseURL: default remote.baseURL from the specs, validation url.
  2. Credential, secret: true, no default. Only when remote.security is present. Name it for the scheme: APIKey (apiKey), BearerToken (http-bearer/oauth2), or BasicAuth (http-basic, value is the user:password pair).
Step 5: Add the Shared Request Helpers (Once)

Add these helpers to service.go exactly once, not per endpoint. They are the only delegation logic; every handler becomes a single call into them. Add imports bytes, context, encoding/json, io, net/http, strings, errors, github.com/microbus-io/fabric/httpx, and the httpegressapi package.

go
// remoteURL joins the configured base with an operation path, tolerating a configured base that
// has (or lacks) a trailing slash. path must start with "/".
func (svc *Service) remoteURL(path string) string {
	return strings.TrimRight(svc.RemoteBaseURL(), "/") + path
}

// authenticate injects the remote credential per the specs remote.security. Write its body once,
// keeping only the line for this API's scheme:
//   apiKey header -> req.Header.Set("<name>", svc.APIKey())
//   apiKey query  -> q := req.URL.Query(); q.Set("<name>", svc.APIKey()); req.URL.RawQuery = q.Encode()
//   http-bearer/oauth2 -> req.Header.Set("Authorization", "Bearer "+svc.BearerToken())
//   http-basic -> u, p, _ := strings.Cut(svc.BasicAuth(), ":"); req.SetBasicAuth(u, p)
func (svc *Service) authenticate(req *http.Request) {
	req.Header.Set("Authorization", "Bearer "+svc.BearerToken())
}

// makeFunctionRequest forwards a typed call to the remote API: it sends method+url with an optional
// JSON-encoded in body, decodes a JSON response into out when out is non-nil, and returns the remote
// status code unchanged.
func (svc *Service) makeFunctionRequest(ctx context.Context, method, rawURL string, in, out any) (status int, err error) {
	var body io.Reader
	if in != nil {
		b, err := json.Marshal(in)
		if err != nil {
			return 0, errors.Trace(err)
		}
		body = bytes.NewReader(b)
	}
	req, err := http.NewRequest(method, rawURL, body)
	if err != nil {
		return 0, errors.Trace(err)
	}
	if in != nil {
		req.Header.Set("Content-Type", "application/json")
	}
	svc.authenticate(req)
	resp, err := httpegressapi.NewClient(svc).Do(ctx, req)
	if err != nil {
		return 0, errors.Trace(err)
	}
	defer resp.Body.Close()
	if out != nil {
		err = json.NewDecoder(resp.Body).Decode(out)
		if err != nil {
			return resp.StatusCode, errors.Trace(err)
		}
	}
	return resp.StatusCode, nil
}

// makeWebRequest forwards a raw web call (caller's query string and body included) and relays the
// remote response to w unchanged. httpx.Copy transfers the body buffer without copying its bytes.
func (svc *Service) makeWebRequest(w http.ResponseWriter, r *http.Request, method, rawURL string) (err error) {
	req, err := http.NewRequest(method, rawURL, r.Body)
	if err != nil {
		return errors.Trace(err)
	}
	req.URL.RawQuery = r.URL.RawQuery
	req.Header = r.Header.Clone()
	svc.authenticate(req)
	resp, err := httpegressapi.NewClient(svc).Do(r.Context(), req)
	if err != nil {
		return errors.Trace(err)
	}
	defer resp.Body.Close()
	return errors.Trace(httpx.Copy(w, resp))
}

The status code is passed through unchanged. Do not add retries, caching, or reshaping; cross-cutting concerns belong in the caller.

Step 6: Select Which Endpoints to Import

Read the candidate endpoints from myservice/openapispecs.json (endpoints[]; each has name, feature, method, route, summary). This is the entry point when Step 1 sent you straight here for an existing delegator. Large APIs have hundreds of endpoints; import only the curated subset the project needs.

  • Agent-relevant (default mid-task): select the endpoints the task requires, list them to the user with one-line justifications, and proceed. More can be added later from the same specs.
  • Interactive (default for a bare "import this API"): present the endpoints grouped by route with method, name, summary and ask the user to choose. Offer "all" for small APIs.

Skip endpoints already scaffolded (their // MARKER comment, keyed by the endpoint name, is in myserviceapi/definition.go); re-import is additive. Record the imported names under a ## Imported Endpoints heading in the local CLAUDE.md.

Step 7: Generate the Complex Types

For every type a selected endpoint references via $ref: 'Name' in its params, requestBody, or response, define a Go struct from types['Name'] in the specs (a $ref value is the bare type name and keys the types map directly; nested $refs inside a type schema work the same way). Follow the add-function skill's "Define Complex Types" conventions (one file per type under myserviceapi/, json camelCase omitzero, jsonschema_description:"..." from the schema's description) for the Go mapping. For oneOf/anyOf/allOf or free-form objects with no properties, fall back to json.RawMessage and note the fallback in the type's godoc.

Show full SKILL.md (673 more words)Show less
Step 8: Declare the Endpoints in definition.go

Declare every selected endpoint in myserviceapi/definition.go before generating, so a single genservice pass in Step 9 scaffolds all their handlers. Do NOT hand-write any service.go handler here: genservice projects each handler's signature and godoc from the declaration, and you fill only the body in Step 10.

Every endpoint's method and route come from the specs verbatim (already in Microbus {arg} syntax). The endpoint godoc is the specs summary/description only.

A {arg} must span a whole route segment. Microbus rejects a route where an argument shares its segment with literal text (e.g. /{provider}.json), failing at subscription time - not at cmd/genservice or go vet. When a remote route has this shape, adjust only the Microbus-facing route so each argument is a full segment, splitting the suffix off: /specs/{provider}/{api}.json -> /specs/{provider}/{api}/api.json. The Step 10 handler still builds the original remote URL via svc.remoteURL(...), so delegation stays byte-transparent; only the route callers use to reach this microservice changes. This is the sole sanctioned exception to "never rename routes".

Security (decide per endpoint, do not skip). This microservice injects a stored secret credential server-side, so it is exactly the confused-deputy case in microbus.md (Ports, Authentication and Authorization): default to closed. Per endpoint, gate it with RequiredClaims and/or an internal port (prefix the route with :444); leave it open on the default :443 without RequiredClaims only when the endpoint is genuinely public. Both RequiredClaims and the port are fields of the declaration below, so decide them now.

Function endpoints (feature: function): follow the add-function skill. Append the define.Function var and its In/Out structs. The In struct holds one field per params entry (path, query, header alike; spec name, first letter uppercased for the Go field, camelCase json tag) typed from the param's goType when present, else its schema mapped per add-function conventions; a path-arg field's json tag matches its {arg} segment. The Out struct returns httpResponseBody of the response type plus httpStatusCode. Put per-argument descriptions on the In/Out fields as jsonschema_description:"..." tags (from the spec param/property description). The magic Go field names HTTPRequestBody, HTTPResponseBody, HTTPStatusCode are matched by reflection; renaming them silently disables the magic, and each takes a json:"-" tag (types are bare because definition.go is in the myserviceapi package):

go
/*
RemoteFunction does X.
*/
var RemoteFunction = define.Function{ // MARKER: RemoteFunction
	Host: Hostname, Method: "GET", Route: "/things/{id}",
	In: RemoteFunctionIn{}, Out: RemoteFunctionOut{},
}

// RemoteFunctionIn are the input arguments of RemoteFunction.
type RemoteFunctionIn struct { // MARKER: RemoteFunction
	ID     int64  `json:"id,omitzero" jsonschema_description:"ID is the thing identifier"`
	Status string `json:"status,omitzero" jsonschema_description:"Status filters the result"`
}

// RemoteFunctionOut are the output arguments of RemoteFunction.
type RemoteFunctionOut struct { // MARKER: RemoteFunction
	HTTPResponseBody []Thing `json:"-"`
	HTTPStatusCode   int     `json:"-"`
}

For a body-bearing operation (requestBody present, e.g. a POST create), the In struct instead carries an HTTPRequestBody field of the body type (HTTPRequestBody *Thing with a json:"-" tag), alongside any path or query fields; the Step 10 handler passes it as the in argument to makeFunctionRequest.

Web endpoints (feature: web): follow the add-web skill. Append the define.Web var (a raw web handler has no In/Out structs):

go
/*
RemoteWeb does X.
*/
var RemoteWeb = define.Web{ // MARKER: RemoteWeb
	Host: Hostname, Method: "POST", Route: "/things/{id}/upload",
}
Step 9: Generate the Boilerplate

From the microservice's directory, run the generator. It regenerates myserviceapi/client.go, intermediate.go, mock.go, mock_test.go, and manifest.yaml, and scaffolds a placeholder handler in service.go for every endpoint declared in Step 8 (its signature and godoc projected from definition.go, holding a // TODO body).

shell
go run github.com/microbus-io/fabric/cmd/genservice .

Then verify the microservice compiles with go vet ./... from the project root.

Step 10: Implement the Handler Bodies

For each scaffolded handler in service.go, replace only its // TODO body with a single delegation call. Leave the generated signature and godoc as they are: they are the contract from definition.go, so if a signature is wrong, fix definition.go and regenerate rather than editing service.go.

Function handlers: fill with a single makeFunctionRequest call. Build the URL with svc.remoteURL(...), the route with path arguments substituted, and any query parameters. Pass httpRequestBody as the in argument for a body-bearing operation, or nil when there is none, and nil for out when there is no typed response:

go
func (svc *Service) RemoteFunction(ctx context.Context, id int64, status string) (httpResponseBody []myserviceapi.Thing, httpStatusCode int, err error) { // MARKER: RemoteFunction
	u, err := url.Parse(svc.remoteURL("/things/" + url.PathEscape(fmt.Sprint(id))))
	if err != nil {
		return nil, 0, errors.Trace(err)
	}
	q := u.Query()
	q.Set("status", status) // one line per query parameter
	u.RawQuery = q.Encode()

	httpStatusCode, err = svc.makeFunctionRequest(ctx, "GET", u.String(), nil, &httpResponseBody)
	return httpResponseBody, httpStatusCode, errors.Trace(err)
}

Web handlers: fill with a single makeWebRequest call:

go
func (svc *Service) RemoteWeb(w http.ResponseWriter, r *http.Request) (err error) { // MARKER: RemoteWeb
	return svc.makeWebRequest(w, r, "POST",
		svc.remoteURL("/things/"+url.PathEscape(r.PathValue("id"))+"/upload"))
}
Step 11: Wire the HTTP Egress Proxy Into the App

Ensure the HTTP egress proxy is in main/main.go (add the import and app.Add entry if missing). This skill generates no endpoint tests, so there is no test app to wire: a delegator's behavioral tests would only exercise the egress mock and assert a tautology. The add-microservice scaffold's service_test.go stays as generated (import guards only).

Step 12: Housekeeping

Follow the housekeeping skill.

© microbus-io, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/microbus/import-openapi-microservice of microbus-io/fabric.

Open the folder on GitHubat commit fb98098

Compare with similar skills

Import Openapi Microservice next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Import Openapi Microservice compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Import Openapi Microservice this skillmicrobus-io/fabric172—~4kAutomated safety check: PassApache-2.0
Detecting Shadow API Endpointsmukul975/Anthropic-Cybersecurity-Skills34k—~3.6kAutomated safety check: PassApache-2.0
API Contract Testingsecondsky/claude-skills227—~977Automated safety check: PassMIT
API Security ReviewOWASP/secure-agent-playbook187—~744Automated safety check: PassCC-BY-4.0
ToolJet Marketplace Plugin BuilderToolJet/ToolJet41k—~2.1kAutomated safety check: PassAGPL-3.0
Step Partsearthtojake/text-to-cad18k1 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Detecting Shadow API Endpoints

    mukul975/Anthropic-Cybersecurity-Skills

    Discover and inventory shadow API endpoints that operate outside documented OpenAPI/Swagger specs, using traffic analysis against API gateways (Kong, AWS API Gateway, Envoy), cloud configuration…

    34k GitHub stars~3.6k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • API Contract Testing

    secondsky/claude-skills

    Verifies API contracts between services using consumer-driven contracts, schema validation, and tools like Pact.

    227 GitHub stars~977 tokensUpdated 9 days ago
    Backend & APIsAuto-check passed
  • API Security Review

    OWASP/secure-agent-playbook

    Comprehensive API security review against OWASP API Security Top 10 (2023).

    187 GitHub stars~744 tokensUpdated 12 days ago
    SecurityAuto-check passed
  • Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.

    41k GitHub stars~2.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Step Parts

    earthtojake/text-to-cad

    Find, evaluate, and download common purchasable CAD parts from step.parts, including named off-the-shelf actuators, servos, motors, electronics boards, connectors, screws, bolts, nuts, washers…

    18k GitHub starsUsed in 1 repo~1.5k tokens
    Backend & APIsAuto-check passed
  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 2 repos~2k tokens
    Backend & APIsAuto-check passed

More from microbus-io/fabric

All 32 skills in this repo
  • Add Config

    microbus-io/fabric

    TRIGGER when user asks to add or modify a configuration property or setting, or to make a value configurable.

    172 GitHub stars~2.3k tokensUpdated 10 days ago
    Auto-check passed
  • Add Function

    microbus-io/fabric

    TRIGGER when user asks to add, create, or modify an API endpoint, function, or RPC, or a route that accepts typed arguments and returns typed results.

    172 GitHub stars~2.4k tokensUpdated 10 days ago
    Auto-check passed
  • Add Inbound Event

    microbus-io/fabric

    TRIGGER when user asks to listen for, subscribe to, or handle an event emitted by another microservice.

    172 GitHub stars~1.4k tokensUpdated 10 days ago
    Auto-check passed
  • Add Metric

    microbus-io/fabric

    TRIGGER when user asks to add or modify a metric, counter, gauge, or histogram, or to track/measure an operation.

    172 GitHub stars~1.5k tokensUpdated 10 days ago
    Auto-check passed
  • Add Outbound Event

    microbus-io/fabric

    TRIGGER when user asks to fire, emit, or publish an event that other microservices can subscribe to.

    172 GitHub stars~1.7k tokensUpdated 10 days ago
    Auto-check passed
  • Add Python Function

    microbus-io/fabric

    TRIGGER when user asks to add a Python-backed function endpoint to an existing Python-backed microservice.

    172 GitHub stars~1.3k tokensUpdated 10 days ago
    Auto-check passed

Works with

Categories

Questions about Import Openapi Microservice

What does Import Openapi Microservice do?

TRIGGER when the user asks to delegate to or integrate an external/third-party REST API, import an OpenAPI/Swagger document, or generate a microservice from an OpenAPI spec (by URL or pasted…. Import Openapi Microservice is an agent skill from microbus-io/fabric. TRIGGER when the user asks to delegate to or integrate an external/third-party REST API, import an OpenAPI/Swagger document, or generate a microservice from an OpenAPI spec (by URL or pasted JSON/YAML).

When should I use Import Openapi Microservice?

Import Openapi Microservice fits situations like: the user asks to delegate to; integrate an external/third-party REST API; import an OpenAPI/Swagger document; generate a microservice from an OpenAPI spec (by URL.

How do I install Import Openapi Microservice in Claude Code?

Run `npx skills add microbus-io/fabric --skill import-openapi-microservice -a claude-code`. Or copy the skill folder (.claude/skills/microbus/import-openapi-microservice in microbus-io/fabric) into .claude/skills/import-openapi-microservice in your project. Claude Code loads it when a task matches its description.

How do I install Import Openapi Microservice in Codex?

Run `npx skills add microbus-io/fabric --skill import-openapi-microservice -a codex`. Or copy the skill folder (.claude/skills/microbus/import-openapi-microservice in microbus-io/fabric) into .agents/skills/import-openapi-microservice in your project. Codex loads it when a task matches its description.

Can I use Import Openapi Microservice in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microbus-io/fabric --skill import-openapi-microservice -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/import-openapi-microservice, .gemini/skills/import-openapi-microservice, .github/skills/import-openapi-microservice and .opencode/skills/import-openapi-microservice in your project.

What does Import Openapi Microservice need to run?

Going by SKILL.md and its folder, Import Openapi Microservice needs the command-line tools its instructions call (go and curl).

Does Import Openapi Microservice access the network?

SKILL.md names 1 domain. In commands or code: petstore3.swagger.io; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Import Openapi Microservice safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Import Openapi Microservice use?

Import Openapi Microservice is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Import Openapi Microservice use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Import Openapi Microservice?

Skills that share tags, products or a category with Import Openapi Microservice: Detecting Shadow API Endpoints (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), API Contract Testing (secondsky/claude-skills, 227 stars), API Security Review (OWASP/secure-agent-playbook, 187 stars) and ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Import Openapi Microservice?

microbus-io (a GitHub organization) maintains it in microbus-io/fabric, which has 172 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on September 28, 2026.

Source: microbus-io/fabric on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.