Skip to main content
Glama

MCP Server for Splunk

Apache 2.0
16
  • Apple
  • Linux
test_spec_integration.py4.15 kB
""" Quick integration test to verify SplunkSpecReferenceResource registration. """ from src.resources.splunk_docs import create_spec_reference_resource from src.core.registry import resource_registry def main(): """Test that spec reference resource is registered and functional.""" print("Testing SplunkSpecReferenceResource integration...\n") # Test 1: Check resource is registered print("1. Checking resource registry...") all_resources = resource_registry.list_resources() spec_resources = [r for r in all_resources if "spec" in r.name.lower()] if spec_resources: print(f" ✓ Found {len(spec_resources)} spec-related resource(s) in registry") for res in spec_resources: print(f" - {res.name}: {res.uri}") else: print(" ✗ No spec resources found in registry") return False # Test 2: Create resource using factory print("\n2. Testing factory function...") try: resource = create_spec_reference_resource("10.0", "alert_actions.conf") print(f" ✓ Created resource: {resource.name}") print(f" URI: {resource.uri}") print(f" Description: {resource.description}") except Exception as e: print(f" ✗ Failed to create resource: {e}") return False # Test 3: Test version parsing print("\n3. Testing version parsing...") test_versions = [ ("10.0", ("10.0", "10.0.0")), ("10.0.0", ("10.0", "10.0.0")), ("9.4.0", ("9.4", "9.4.0")), ("latest", ("10.0", "10.0.0")), ("auto", ("10.0", "10.0.0")), ] for version_input, expected in test_versions: resource = create_spec_reference_resource(version_input, "test.conf") minor, full = resource._parse_version_components(version_input) if (minor, full) == expected: print(f" ✓ {version_input} -> minor={minor}, full={full}") else: print(f" ✗ {version_input} -> Got ({minor}, {full}), expected {expected}") return False # Test 4: Test config name normalization print("\n4. Testing config name normalization...") test_configs = [ ("alert_actions", "alert_actions.conf"), ("alert_actions.conf", "alert_actions.conf"), ("alert_actions.conf.spec", "alert_actions.conf"), ("limits", "limits.conf"), ] for config_input, expected in test_configs: resource = create_spec_reference_resource("10.0", config_input) normalized = resource._normalize_config_name(config_input) if normalized == expected: print(f" ✓ {config_input} -> {normalized}") else: print(f" ✗ {config_input} -> Got {normalized}, expected {expected}") return False # Test 5: Test URL construction print("\n5. Testing URL construction...") resource = create_spec_reference_resource("10.0", "alert_actions.conf") minor, full = resource._parse_version_components("10.0") config = resource._normalize_config_name("alert_actions.conf") expected_primary = ( "https://help.splunk.com/en/splunk-enterprise/administer/admin-manual/" "10.0/configuration-file-reference/10.0.0-configuration-file-reference/alert_actions.conf" ) primary_url = f"{resource.SPLUNK_HELP_BASE}/en/splunk-enterprise/administer/admin-manual/{minor}/configuration-file-reference/{full}-configuration-file-reference/{config}" if primary_url == expected_primary: print(f" ✓ Primary URL constructed correctly") print(f" {primary_url}") else: print(f" ✗ URL mismatch") print(f" Expected: {expected_primary}") print(f" Got: {primary_url}") return False print("\n✅ All integration tests passed!") print("\nExample URIs:") print(" - splunk-spec://10.0/alert_actions.conf") print(" - splunk-spec://latest/limits.conf") print(" - splunk-spec://9.4.0/inputs.conf") print(" - splunk-spec://auto/props.conf") return True if __name__ == "__main__": success = main() exit(0 if success else 1)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deslicer/mcp-for-splunk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server