AgentStack
SKILL verified MIT Self-run

Crestapps Core Custom Tools

skill-crestapps-crestapps-agentskills-crestapps-core-custom-tools · by CrestApps

Skill for registering custom AI-callable tools, tool metadata, and access control in CrestApps.Core.

No reviews yet
0 installs
11 views
0.0% view→install

Install

$ agentstack add skill-crestapps-crestapps-agentskills-crestapps-core-custom-tools

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Crestapps Core Custom Tools? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

CrestApps.Core Custom Tools - Prompt Templates

Create Custom AI Tools

You are a CrestApps.Core expert. Generate tool classes and registration code for CrestApps.Core custom AI tools.

Guidelines

  • Inherit from AITool.
  • Register tools with AddCoreAITool(name).
  • Use .Selectable() only for tools that should appear in UI assignment surfaces.
  • Prefer clear titles, descriptions, categories, and purpose tags.
  • Catch failures inside the tool and return descriptive results instead of throwing.

Registration

builder.Services
    .AddCoreAIServices()
    .AddCoreAIOrchestration()
    .AddCoreAITool("get-weather")
        .WithTitle("Get Weather")
        .WithDescription("Returns current weather for a location.")
        .WithCategory("Utilities")
        .Selectable();

Tool Example

public sealed class WeatherTool : AITool
{
    private sealed record WeatherInput(string Location, string Units = "celsius");

    protected override async ValueTask InvokeCoreAsync(
        AIFunctionArguments arguments,
        CancellationToken cancellationToken)
    {
        var input = arguments.Deserialize();

        if (string.IsNullOrWhiteSpace(input?.Location))
        {
            return "A location is required.";
        }

        return new { Temperature = 22, Condition = "Sunny", Location = input.Location };
    }
}

Tool Metadata Guidance

| Builder method | Use | |---|---| | .WithTitle(...) | Friendly UI title | | .WithDescription(...) | Description shown to the model | | .WithCategory(...) | UI grouping | | .WithPurpose(...) | Semantic auto-inclusion hints | | .Selectable() | User-assignable tool |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.