SolidWorks MCP
PYPI · SOLIDWORKS-MCP-PYTHON
Drive SolidWorks from AI agents: parts, assemblies, drawings and export over the COM API.
Available components
Last scanned (49 minutes ago)
Scores higher than 74% of PyPI servers
Category Developer Tools
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- Known CVEs were checked across the 65 of 66 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- Dependency health was assessed across the 65 of 66 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to andrewbartels1/SolidworksMCP-python). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability64
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 10924 tokens (~70/item across 154 items; 154 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 98% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_feature" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 154 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 4 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 3 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 2 Nov 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed pypi/solidworks-mcp-python@1.5.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | andrewbartels1/SolidworksMCP-python |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/andrewbartels1/SolidworksMCP-python/.github/workflows/release.yml@refs/tags/v1.5.0 |
| Rekor log index | 3637392254 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:066c1c5ab174174c8b9a615276c59168447339ce33192be62f8f32a5760e0fbf |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 65 packages
| Packages resolved | 65 |
|---|---|
| Stale | 7 |
| No linked repository | 2 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_detail_view Create Detail View ~63
Create a detail view of a specific area. Generates magnified detail views of specific regions to show fine features, tight tolerances, and intricate geometry that requires enhanced visibility for manufacturing and inspection.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_drawing Create Drawing ~68
Create a new SolidWorks drawing document. This tool creates a new drawing document from ``template`` (a .drwdot path) or, without one, the default drawing template. The new drawing will become the active document.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_drawing_view Create Drawing View ~68
Create a drawing view of a SolidWorks model. Creates technical drawing views including orthographic projections, isometric views, section views, and detail views from 3D models. Essential for generating production drawings and technical documentation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_extrusion Create Extrusion ~77
Create an extrusion feature from the active sketch. Creates a 3D extrusion feature (boss or cut) from the currently active 2D sketch. Supports advanced options like draft angles, thin features, bidirectional extrusion, and various end conditions for professional modeling workflows.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_loft Create Loft ~84
Loft a solid between two or more profile sketches. Creates a lofted boss/protrusion (Insert > Boss/Base > Loft) blending the listed profile sketches in order. Each profile must be a closed contour. Optional guide curves shape the transition between profiles.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | Profile names, optional guide curves, and tangency/merge options. |
Structured output declared, but exposes no named fields.
No examples provided.
create_macro_library Create Macro Library ~52
Create a library of organized macros for team sharing and reuse. This tool sets up a structured macro library with categorization, documentation, and version control.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_part Create Part ~79
Create a new SolidWorks part document. Creates a new SolidWorks part document from ``template`` (a .prtdot path) or, without one, the default part template. The new part becomes the active document and is ready for modeling operations such as sketch creation and feature addition.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_reference_plane Create Reference Plane ~149
Create a reference plane offset from an existing plane or planar face. Adds a new plane to the feature tree, parallel to and offset from the named reference. The returned plane name can be passed straight to ``create_sketch`` to sketch anywhere other than the six built-in planes. Angled planes are not supported by this tool: an angled plane needs a second reference (an axis or edge) to rotate about, which this signature cannot take. Use ``offset`` for parallel planes. An ``offset`` of zero is rejected — a plane coincident with its reference is not useful.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | Reference name, offset, angle and flip. |
Structured output declared, but exposes no named fields.
No examples provided.
create_reference_point Create Reference Point ~173
Create a reference point on the active part. Two modes: - ``along_curve`` — a point on the edge under ``(x, y, z)`` mm, placed ``distance`` mm from the edge start, or at ``percent`` (0–100) of its length. Give exactly one of ``distance`` / ``percent``. - ``face_center`` — a point at the centroid of the face under ``(x, y, z)`` mm. The coordinate must lie on the target edge/face; SolidWorks resolves it with a coordinate pick. ``InsertReferencePoint`` always returns a feature, so success is confirmed by the feature tree growing.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | Mode, coordinate, and the along-curve parameter. |
Structured output declared, but exposes no named fields.
No examples provided.
create_revolve Create Revolve ~74
Create a revolve feature from the active sketch. Creates a 3D revolve feature by rotating the active 2D sketch profile around a specified axis of revolution. Supports full and partial revolves, thin features, and bidirectional revolution for comprehensive rotational modeling.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_section_view Create Section View ~63
Create a section view of the current drawing. Generates section views that show internal features by cutting through the part along a specified section line. Essential for revealing hidden geometry, internal structures, and complex assemblies.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_sketch Create Sketch ~78
Create a new sketch on the specified plane. Creates a new sketch on a reference plane and enters sketch edit mode. This is the first step for creating any 2D geometry that will be used for 3D features like extrusions, revolves, or sweeps.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_sweep Create Sweep ~119
Sweep the active profile sketch along a named path sketch. Creates a swept boss/protrusion (Insert > Boss/Base > Sweep). Requires two sketches in the active part: a closed profile sketch and an open path sketch named by ``path``. The profile is inferred as the sketch that is not the path (in the usual "draw profile, draw path, sweep" flow this is unambiguous). Optionally applies a constant twist along the path.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | Path name and twist/merge options. |
Structured output declared, but exposes no named fields.
No examples provided.
create_technical_drawing Create Technical Drawing ~59
Create a technical drawing from a SolidWorks part or assembly. Supports selecting a template, output path, sheet format, scale, and optional auto- population of standard views for documentation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
create_template Create Template ~48
Create a SolidWorks template file. This tool creates templates for parts, assemblies, or drawings with standardized settings, materials, and configurations.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
delete_feature Delete Feature ~64
Delete a feature or sketch from the active model. Deleting a parent feature also removes everything that depends on it — SolidWorks' normal cascade — so the response lists every feature that went, not just the one named.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The feature to delete. |
Structured output declared, but exposes no named fields.
No examples provided.
discover_solidworks_docs Discover Solidworks Docs ~75
Discover and index SolidWorks COM and VBA documentation. Creates a searchable index of all available COM objects, methods, properties, and VBA libraries for the installed SolidWorks version. Useful for building context for intelligent MCP tool selection and documentation queries.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | – | – | The input data value. Defaults to None. |
Structured output declared, but exposes no named fields.
No examples provided.
execute_macro Execute Macro ~103
Run a binary SolidWorks macro (.swp, or legacy .swb). Calls ``ISldWorks::RunMacro2`` on ``macro_path`` (or ``macro_file``). Only binary macros run: VBA source (.vb, .bas, plain text) is rejected as ``invalid_input`` before anything reaches SolidWorks. The macro must not be interactive (no MsgBox or user forms).
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
execute_workflow Execute Workflow ~46
Handle execute workflow. This tool executes a series of automated steps in sequence, with support for parallel execution and error handling.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
exit_sketch Exit Sketch ~56
Exit sketch editing mode. Exits the current sketch editing mode and returns to the 3D modeling environment. This is required after completing sketch geometry before creating 3D features like extrusions, revolves, or sweeps.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
export_dwg Export Dwg ~70
Export the current drawing to DWG format. Converts SolidWorks drawings to DWG (Drawing) format, the native AutoCAD file format widely used in architecture, engineering, and construction industries for 2D technical drawings.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
export_flat_pattern Export Flat Pattern ~93
Export the active sheet-metal part's flat pattern to DXF or DWG. Exports the flat-pattern geometry only (no bend lines or sketches), for laser or waterjet cutting. A part without a sheet-metal body is refused (``not_found``) and nothing is written.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | ``file_path`` ending in ``.dxf`` or ``.dwg``. |
Structured output declared, but exposes no named fields.
No examples provided.
export_iges Export Iges ~65
Export the current model to IGES format. Exports SolidWorks models to IGES (Initial Graphics Exchange Specification) format, a legacy neutral CAD format still widely used for surface modeling and older CAD system compatibility.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
export_image Export Image ~55
Export images of the current model. Captures high-quality rendered images of SolidWorks models from various view orientations for documentation, presentations, marketing materials, and web publication.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
export_pdf Export Pdf ~62
Export the current model or drawing to PDF format. Creates PDF documents from SolidWorks drawings, assemblies, or parts for documentation, sharing, review, and archival purposes. Essential for design review and manufacturing documentation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
export_step Export Step ~61
Export the current model to STEP format. Exports SolidWorks models to STEP (Standard for the Exchange of Product Data) format, the preferred neutral CAD format for interoperability between different CAD systems and manufacturers.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
export_stl Export Stl ~63
Export the current model to STL format. Exports SolidWorks models to STL (Stereolithography) format, the standard file format for 3D printing, rapid prototyping, and additive manufacturing applications.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
extract_template Extract Template ~28
Extract template from existing SolidWorks model.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
find_related_api_members Find Related Api Members ~58
Find API members related to a known interface or member name. For an interface: its own members. For a member: the other members of every interface that also exposes it, plus name-substring matches.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
generate_drawing_package Generate Drawing Package ~209
Create a complete A3 drawing of a part or assembly in one call. A3 ISO frame with a filled title block (title, drawing number, material, weight, drawn by/date, revision); front, plan, side and isometric views in cells sized to fill the sheet at one standard scale (never stepped down); model dimensions shown once and laid out in rows; bold view-name captions; a NOTES block; nothing overlapping, checked on the read-back geometry. Saves ``<drawing_number>.SLDDRW`` and a PDF. The DWG NO. and TITLE are shrunk to fit their title-block boxes. For smaller title-block text, pass ``title_block_text_height_mm`` (e.g. ``3``); a field that cannot fit even at 2 mm is reported as an overlap, with that hint.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | – | – | ``model_path`` plus optional title-block fields, ``notes`` and output folder. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_drawing_report Generate Drawing Report ~28
Generate comprehensive drawing analysis report.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_assembly_insert Generate Vba Assembly Insert ~32
Generate VBA code for assembly component insertion.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_assembly_mates Generate Vba Assembly Mates ~33
Generate VBA code for assembly mate creation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_batch_export Generate Vba Batch Export ~32
Generate VBA code for batch file export operations.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_code Generate Vba Code ~52
Generate VBA code for SolidWorks automation. Analyzes operation description and generates appropriate VBA code with SolidWorks API calls, error handling, and documentation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_drawing_dimensions Generate Vba Drawing Dimensions ~41
Generate VBA code for creating drawing dimensions. Creates macro for various dimension types in drawings.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_drawing_views Generate Vba Drawing Views ~32
Generate VBA code for drawing view creation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_extrusion Generate Vba Extrusion ~32
Generate VBA code for complex extrusion operations.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_file_operations Generate Vba File Operations ~31
Generate VBA code for file management operations.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_macro_recorder Generate Vba Macro Recorder ~32
Generate VBA code using macro recording patterns.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_part_modeling Generate Vba Part Modeling ~33
Generate VBA code for complex part modeling operations.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
generate_vba_revolve Generate Vba Revolve ~31
Generate VBA code for complex revolve operations.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
get_custom_properties Get Custom Properties ~65
Read the active document's custom properties. Read-only. File-level properties (the default) are what drawing title blocks and BOMs usually link to; pass ``configuration`` for configuration-specific ones.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | – | – | ``configuration``; file-level properties when omitted. |
Structured output declared, but exposes no named fields.
No examples provided.
get_dimension Get Dimension ~70
Get the value of a dimension from the current model. Retrieves the current value of a named dimension from the active SolidWorks model. Dimensions can be from sketches, features, or global dimensions. Useful for parametric modeling and design validation.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | object | yes | The input data value. |
Structured output declared, but exposes no named fields.
No examples provided.
get_file_properties Get File Properties ~48
Get properties of the current SolidWorks file. Retrieves comprehensive metadata and properties of the currently active SolidWorks document. Provides essential file information for document management, version control, and project organization.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
get_mass_properties Get Mass Properties ~33
Backward-compatible alias for calculate_mass_properties.
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | – | – | The input data value. Defaults to None. |
Structured output declared, but exposes no named fields.
No examples provided.
get_material Get Material ~46
Read the material assigned to the active part. Read-only. Parts only (``wrong_document_type`` otherwise).
| Name | Type | Req | Description |
|---|---|---|---|
| input_data | – | – | ``configuration``; the active one when omitted. |
Structured output declared, but exposes no named fields.
No examples provided.
get_material_properties Get Material Properties ~38
Get material properties of the current model. This tool retrieves the material properties assigned to the model including density, elastic modulus, yield strength, etc.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
get_model_info Get Model Info ~49
Get metadata for the active SolidWorks document. Returns a compact summary of the current model context that is useful for read-before- write LLM flows (document type, active configuration, and feature count).
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
get_selected_entities Get Selected Entities ~131
Report the faces/edges/vertices currently selected in the live SolidWorks UI. Use this to find out exactly what the user has clicked on in SolidWorks before applying a feature (e.g. "chamfer the face I selected") instead of guessing from coordinates or a screenshot. Each entry includes enough geometry (bounding box, center, area/length, normal where applicable) to identify which face/edge is which, and the center coordinates can be fed straight into add_chamfer/add_fillet's "face:x,y,z" or coordinate edge_names syntax.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the SolidWorks MCP server?
SolidWorks MCP runs locally as a PyPI package, launched with uvx solidworks-mcp-python. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · solidworks-mcp-python
claude mcp add andrewbartels1-solidworks-mcp-python -- uvx solidworks-mcp-python
What is the SolidWorks MCP server?
SolidWorks MCP is listed in the public MCP registry as io.github.andrewbartels1/solidworks-mcp-python. Drive SolidWorks from AI agents: parts, assemblies, drawings and export over the COM API. This page covers its PyPI package (solidworks-mcp-python).
Is the SolidWorks MCP server safe to use?
SolidWorks MCP scores 77 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the SolidWorks MCP server expose?
SolidWorks MCP exposes 154 tools: open_model, create_part, create_assembly, create_drawing, close_model, and 149 more. Their descriptions and schemas cost roughly 10,924 tokens of context every time the server is loaded.
Is the SolidWorks MCP server still maintained?
SolidWorks MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the SolidWorks MCP server under?
SolidWorks MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.