Agent skill

base

Database management, forms, reports, and data operations with LibreOffice Base.

Stars 232
Forks 15

Install this agent skill to your Project

npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/sickn33/base

SKILL.md

LibreOffice Base

Overview

LibreOffice Base skill for creating, managing, and automating database workflows using the native ODB (OpenDocument Database) format.

When to Use This Skill

Use this skill when:

  • Creating new databases in ODB format
  • Connecting to external databases (MySQL, PostgreSQL, etc.)
  • Automating database operations and reports
  • Creating forms and reports
  • Building database applications

Core Capabilities

1. Database Creation

  • Create new ODB databases from scratch
  • Design tables, views, and relationships
  • Create embedded HSQLDB/Firebird databases
  • Connect to external databases

2. Data Operations

  • Import data from CSV, spreadsheets
  • Export data to various formats
  • Query execution and management
  • Batch data processing

3. Form and Report Automation

  • Create data entry forms
  • Design custom reports
  • Automate report generation
  • Build form templates

4. Query and SQL

  • Visual query design
  • SQL query execution
  • Query optimization
  • Result set manipulation

5. Integration

  • Command-line automation
  • Python scripting with UNO
  • JDBC/ODBC connectivity

Workflows

Creating a New Database

Method 1: Command-Line

bash
soffice --base

Method 2: Python with UNO

python
import uno

def create_database():
    local_ctx = uno.getComponentContext()
    resolver = local_ctx.ServiceManager.createInstanceWithContext(
        "com.sun.star.bridge.UnoUrlResolver", local_ctx
    )
    ctx = resolver.resolve(
        "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext"
    )
    smgr = ctx.ServiceManager
    doc = smgr.createInstanceWithContext("com.sun.star.sdb.DatabaseDocument", ctx)
    doc.storeToURL("file:///path/to/database.odb", ())
    doc.close(True)

Connecting to External Database

python
import uno

def connect_to_mysql(host, port, database, user, password):
    local_ctx = uno.getComponentContext()
    resolver = local_ctx.ServiceManager.createInstanceWithContext(
        "com.sun.star.bridge.UnoUrlResolver", local_ctx
    )
    ctx = resolver.resolve(
        "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext"
    )
    smgr = ctx.ServiceManager
    
    doc = smgr.createInstanceWithContext("com.sun.star.sdb.DatabaseDocument", ctx)
    datasource = doc.getDataSource()
    datasource.URL = f"sdbc:mysql:jdbc:mysql://{host}:{port}/{database}"
    datasource.Properties["UserName"] = user
    datasource.Properties["Password"] = password
    
    doc.storeToURL("file:///path/to/connected.odb", ())
    return doc

Database Connection Reference

Supported Database Types

  • HSQLDB (embedded)
  • Firebird (embedded)
  • MySQL/MariaDB
  • PostgreSQL
  • SQLite
  • ODBC data sources
  • JDBC data sources

Connection Strings

# MySQL
sdbc:mysql:jdbc:mysql://localhost:3306/database

# PostgreSQL
sdbc:postgresql://localhost:5432/database

# SQLite
sdbc:sqlite:file:///path/to/database.db

# ODBC
sdbc:odbc:DSN_NAME

Command-Line Reference

bash
soffice --headless
soffice --base  # Base

Python Libraries

bash
pip install pyodbc    # ODBC connectivity
pip install sqlalchemy # SQL toolkit

Best Practices

  1. Use parameterized queries
  2. Create indexes for performance
  3. Backup databases regularly
  4. Use transactions for data integrity
  5. Store ODB source files in version control
  6. Document database schema
  7. Use appropriate data types
  8. Handle connection errors gracefully

Troubleshooting

Cannot open socket

bash
killall soffice.bin
soffice --headless --accept="socket,host=localhost,port=8100;urp;"

Connection Issues

  • Verify database server is running
  • Check connection string format
  • Ensure JDBC/ODBC drivers are installed
  • Verify network connectivity

Resources

Related Skills

  • writer
  • calc
  • impress
  • draw
  • workflow-automation

Expand your agent's capabilities with these related and highly-rated skills.

aiskillstore/marketplace

perigon-backend

Perigon ASP.NET Core + EF Core + Aspire conventions

232 15
Explore
aiskillstore/marketplace

perigon-agent

Pointers for Copilot/agents to apply Perigon conventions

232 15
Explore
aiskillstore/marketplace

perigon-angular

Angular 21+ standalone/Material/signal conventions for Perigon WebApp

232 15
Explore
aiskillstore/marketplace

fastapi-mastery

Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.

232 15
Explore
aiskillstore/marketplace

context7-efficient

Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.

232 15
Explore
aiskillstore/marketplace

browser-use

Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.

232 15
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results